PDA

نسخه کامل مشاهده نسخه کامل : چند سوال از c++



bestirani2
13-03-2009, 16:51
چند تا سؤال كوچك در مورد c++ داشتم؟
1.كاركترهاي تبديلي n و a را در printf و scanf با مثال توضيح دهيد همچنين فرق i و d را هم بگيد.
2.يك توضيحي در مورد نحوه عملكرد دستور زير مي‌خواهم،براي چي تو هر جا يك مقدار متفاوت مي‌دهد.
توي turbo c++ 4.5
int a = 10;
printf("%d%d%d%d",++a,a,a++,a); \\ output:12111010
توي vc++ 6:
int a = 10;
printf("%d%d%d%d",++a,a,a++,a); \\ output:11101010
توي vc++ 2008:
int a = 10;
printf("%d%d%d%d",++a,a,a++,a); \\ output:12121012
توي php:
$a = 10;
printf("%d%d%d%d",++$a,$a,$a++,$a); \\ output:11111112
3.اگه بخواهم يك تابع را به نوعي گرانبار كنم كه هر آرگومان آن بتواند نوع مختلفي باشد چه بايد كرد مثلاً در كد زير:
template <class t>
t function(t val1, t val2)
{
return val1+val2;
}
آرگومان هاي ورودي به طور مثال يا هر دو بايد char باشيد يا هر دو int.حال اگه بخواهم يك int و يك char باشيد بايد چكار كنم.
4.فرق تبديل يك نوع داده به صورت static_cast با روش c در c++ چيه؟
5.در صورتي كه پيش پردازنده اي را include كنيم ولي از توابع آن استفاده نكنيم،روي رم تاثير مي‌گذارد.

bestirani2
13-03-2009, 21:08
لطف كنيد سريع تر جواب سؤال هام رو بديد.

bestirani2
14-03-2009, 16:39
جواب هيچ كدام از سؤال ها رو كسي نمي‌دونست؟

hoax3r
15-03-2009, 16:24
1 - n تعداد کاراکتر هایی که printf یا fprintf چاک کرده رو تو یه متغییر از نوع signed int میریزه (البته چاپش نمیکنه)
a هم یه آرگومان از نوع double میگره خروجی رو 0xh.hhhh p±d میده

این مثالارو ببین:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

i و d هم فرقی با هم ندارن

2 - نمیدونم ولی اولی بنظرم درست تر میاد

3 - فالبو اینجوری تعریف کن بعد یکی از آرگومانارو t1 و یکی رو هم t2 بزار

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

5 - تنها تاثیرش ممکنه موقع کامپایل باشه وگرنه روی RAM تاثیر نداره(البته سوالت کمی گنگه)

bestirani2
15-03-2009, 18:15
hoax3r عزيز از جوابتون ممنون.
اگه ميشه يك توضيحي در مورد 0xh.hhhh p±d بديد كه چي هست و به چه دردي ميخوره و به چه عواملي بستگي دارد.

hoax3r
15-03-2009, 18:48
یه جور نمایش عدد هست در این حالت عدد اعشاری (double) رو در مبنای 16 نشان میده یک رقم رو قبل از نقطه و مابقی رو بعد از نقطه قرار میده
توان رو هم بعد از حرف p میزاره، یک 0x هم اول عبارت هست که نشون میده عدد در مبنای 16 است
حالا کاربردش کجاست رو نمیدونم چون تا حالا باهاش کار نکرده بودم.

این توضیحات کامل تر هم بد نیست ببینید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

bestirani2
15-03-2009, 19:07
در مورد كاركتر تبديلي %w هم اگه اطلاعي داريد،لطفاً اينجا بگيد.

hoax3r
15-03-2009, 20:36
w% ؟؟ همچین فرمت تبدیلی تا جایی میدونم نداریم منظورم برای دستوراتی مثل printf , fprintf , .... هست،
مگه اینگه بگین منظورتون دقیقا برای چه تابعی هست، شاید برای بعضی توابع خاص باشه که من اطلاع ندارم.

bestirani2
15-03-2009, 22:15
ممنون من خودم فهميدم.اين كاكتر براي پرينت كردن هست.

humphry
16-03-2009, 12:15
ye bar toye forum rajebe operator ++ bahs shod taghriban be javab resid

bestirani2
16-03-2009, 15:57
ye bar toye forum rajebe operator ++ bahs shod taghriban be javab resid
چيزي كه من در مورد ++ مي‌دونم اينه كه اگر به صورت پيشودي بگذاريد ابتدا زياد كرده و سپس مقدار را بر مي‌گرداند ولي در صورتي كه پسوندي بگذاريد ابتدا مقدار را بر مي‌گرداند و سپس مقدارش را افزايش داده.
int x = 10;
cout << ++x ;\\ 11
cout << x; \\ 11
int y = 10;
cout << x++;\\10
cout << x;\\11
حال اگه توي بحث انجام شده در فروم مطلب بيشتري بيان شده لينكش را بديد تا بقيه هم استفاده كنند.