[爆卦]C 語言 while(scanf)是什麼?優點缺點精華區懶人包

為什麼這篇C 語言 while(scanf)鄉民發文收入到精華區:因為在C 語言 while(scanf)這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者nopicnic (nopicnic)看板C_and_CPP標題[問題] C語言新手...如何中...


小弟剛接觸C語言不久..
自己翻書學習,寫了一個這樣的程式:

#include <stdio.h>

int main()
{
char grade;
int acount=0;
int bcount=0;
int ccount=0;
char Z = 'Z';

printf("enter the letter grades\n");
printf("enter the eof to end\n ");

while( scanf("%c",&grade) != Z ){

//就是上面這一行,我想要當輸入Z時可以跳出WHILE迴圈,但是實際上在執行時卻無法
//麻煩各位高手指導...


switch(grade){
case 'a':
case 'A':
++acount;
break;

case 'b':
case 'B':
++bcount;
break;

case'C':
case'c':
++ccount;
break;


case '\n':
break;

case 'X':
printf("XXX");


default:
printf("error\n");

}

}

printf("\n");
printf("grade a is %d\n",acount);
printf("grade b is %d\n",bcount);
printf("grade c is %d\n",ccount);


return 0;








}


程式當中WHILE跳離的條件是輸入為Z,但是COMPILE過後執行輸入Z卻無法跳出..
請問問題在哪裡?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.187.9
h12258: 08/23 14:46
swqq123: 08/23 14:49
swqq123:不對請修掉我的推文 thx 08/23 14:51
h12258:把我也修掉XD 08/23 14:51
nopicnic:糟糕我不會修文...能教一下嗎... 08/23 14:52
※ 編輯: nopicnic 來自: 114.39.187.9 (08/23 14:52)
h12258:E 08/23 14:52
nopicnic:ok刪掉囉~@@可是我還是不知道怎麼解決這個問題.... 08/23 14:53
swqq123:scanf("%c",&grade)&&grade!='Z' 我都是這樣寫的 08/23 14:54
swqq123:另外scanf %c會抓到enter 所以我會在while裡面加getchar 08/23 14:55
nopicnic:謝謝你~~~ 08/23 14:57
swqq123:如果寫scanf("%c",&grade)!='Z'的意思是 08/23 14:58
swqq123:scanf的回傳值!=Z的ascii值 08/23 14:58
nopicnic:真的太感謝你了...!!! 08/23 15:07
nopicnic:while( scanf("%c",&grade) &&grade != 'z' ) 08/23 15:08
nopicnic:跟 while((grade = getchar() ) != 'Z' ) 都可以囉~~ 08/23 15:08
nopicnic:剛學c不久,很多基本問題都還不清楚,真的很謝謝你~ 08/23 15:15
hilorrk:scanf會傳回成功讀取的數目 不是傳回讀取的值 08/23 15:44
nopicnic:謝謝樓上~ 08/24 00:38

你可能也想看看

搜尋相關網站