موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تفاوت بین مقدار دهی به متغیر توسط خوندن با دستور ()scanf و تخصیص

0 امتیاز
2,545 نمایش

من در برنامه‌ی زیر به دو روش یک کرکتر رو به یک متغیر از نوع int میدم و انتظار دارم خروجی جفتشون که کد اسکی اون کرکتر هست، با هم مساوی باشه، ولی همچین نتیجه ای نمیگیرم. مشکل از چیه؟ آیا برای مقداردهی، بین تخصیص و خوندن از ورودی تفاوتی وجود داره؟


int main()
{
int i,j;
i='c'; scanf("%d",&j); // I will read 'c' here printf("%d %d",i,j); }
یک مشکل در مورد C++ این است که هم‌اکنون گرایشی قوی در زبان وجود دارد که شما را وادار می‌کند پیش از انجام هر کاری، همه‌ی جوانب آن را بدانید. (Larry Wall)
پرسیده شده جمعه ۱۷ آذر ۱۳۹۱ در C++ توسط CPP_Crawler2  
بازتگ شده شنبه ۲۴ فروردین ۱۳۹۲ توسط admin

1 پاسخ

+1 امتیاز

شما در دستور scanf دارین کارکتر 'c' رو میخونین در حالیکه d% گذاشتین و انتظار یک عدد رو داره، و باید تبدیل نوع این وسط صورت بگیره، این در حالیه که همچین چیزی برای تابع scanf تعریف نشده تا بتونه این تبدیل رو انجام بده، بنابراین یه چیز اشتباه رو برمیگردونه.
اگه همچین تغییری در کدتون ایجاد کنید که به جای d% بذارید c% جواب یکسان میگیرید.

پاسخ داده شده دوشنبه ۱۶ بهمن ۱۳۹۱ توسط CPP_Crawler4