View Full Version : سوال: چگونه خروجی bd می شود؟
complexcoding
جمعه 16 تیر 1391, 17:45 عصر
دوستان سلام
ورودی abed
char ch;
while ((ch=getchar()) != '\n'
putchar(ch=getchar());
پیشاپیش ممنون
pe32_64
جمعه 16 تیر 1391, 18:09 عصر
تابع getchar از stdin (بافر ورودی صفحه کلید)،کاراکتر می خونه.
و حلقه هم تا زمانی که تابع getchar به کلیدenter نرسه ،اجرا میشه.
در اجرای حلقه،تابع getchar اول،کاراکتر a را می خونه و تابع getchar دوم، پس از خوندن کاراکتر b،اونو چاپ می کنه.
و برای دو کاراکتر بعدی هم به همین ترتیب.
نکته:
این تابع از صفحه کلید نمی خونه، یلکه از بافرش می خونه(سبب عدم درک شما از عملکرد)
امیدوارم متوجه شده باشید
the king
جمعه 16 تیر 1391, 18:11 عصر
دوستان سلام
ورودی abed
char ch;
while ((ch=getchar()) != '\n'
putchar(ch=getchar());
پیشاپیش ممنون
کاراکتر های ورودی توسط ()getchar دریافت شده و در ch نوشته شده اما در دو جای مختلف. در اولی ch ئه جایی نشون داده نشده
و در دومی ch ئه توسط putchar نشون داده شده. اگر بخواهید خروجی abed باشه بایستی برای getchar اولی یک (putchar(ch به کد اضافه کنید.
اون چیزی که الان داخل putchar نوشته میشه ch ای نیست که در ((while ((ch=getchar دریافت شده، بلکه ch ای است که
در (()putchar(ch=getchar دریافت شده. اونی که در داخل شرط while دریافت میشه رو بدون نوشتن در خروجی دور می ریزه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.