[問題] 關於 while((fgets(buf,5,stdin)!=NULL))的問題
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
while((fgets(buf,5,stdin)!=NULL))
{
t=strcmp(buf,"aaaa\0");
if(t==0)
printf("found and t=%d\n",t);
else
printf("not found and t=%d\n",t);
}
以上為我有問題的迴圈,當我輸入aaaa時,我發現buf會存入aaaa\0,所以第
一輪的比對會正確顯示,但我發現我輸入aaaa按下enter後,buf似乎會存下別的
字元給她做第二輪的判斷。
因此造成一個問題是,當我輸入正確的字串,aaaa的情況下,出來的結果會如下:
found and t=0
not found and t=-1
判隨著第二行的出現
希望得到的正確結果:
請問要如何解決這個問題 在使用strcmp函式的情況下
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有問題的code: (請善用置底文標色功能)
補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.27.29
推
09/29 16:04, , 1F
09/29 16:04, 1F
推
09/29 16:04, , 2F
09/29 16:04, 2F
→
09/29 16:08, , 3F
09/29 16:08, 3F
推
09/29 16:20, , 4F
09/29 16:20, 4F
推
09/29 19:49, , 5F
09/29 19:49, 5F
→
09/29 19:52, , 6F
09/29 19:52, 6F
→
09/29 19:52, , 7F
09/29 19:52, 7F
→
09/29 20:21, , 8F
09/29 20:21, 8F
→
09/29 20:32, , 9F
09/29 20:32, 9F
→
09/29 21:40, , 10F
09/29 21:40, 10F
推
09/29 21:42, , 11F
09/29 21:42, 11F
→
09/29 21:47, , 12F
09/29 21:47, 12F
→
09/29 22:05, , 13F
09/29 22:05, 13F
推
09/29 22:09, , 14F
09/29 22:09, 14F
→
09/29 22:09, , 15F
09/29 22:09, 15F
→
09/29 22:10, , 16F
09/29 22:10, 16F
推
09/29 22:14, , 17F
09/29 22:14, 17F
→
09/30 00:26, , 18F
09/30 00:26, 18F