Re: [問題] dev c++ 中 scanf 疑問 -再追問-

作者: infinitim37 (世界‧由我定義)   2014-04-25 18:44:29
原本我沒有要另開新文章,不過因為我表達不好,
我想再開新文章請問,
code如下:
int main()
{
char ch[10];
printf("keyin string:");
scanf("%9s",ch);
printf("hi , %s , how are you?",ch);
system("pause");
return 0;
}
小弟已經把 %s 改為 %9s, 的確即使超過9各字元,最後還是以9各字元輸出,
不過小弟又有問題,假如我輸入 10各字元, 那取到第9各後,第10個就是 \0
不過原本我輸入第10各字元,會跑到哪邊去呢?是編譯器自動砍掉?
還是會向後挪一位? 還是complier 就根本不管你輸入,超過9個就視而不見了?
不好意思,小弟是c語言新手,c語言真的是浩瀚無窮~~~
還想請問各位大大,學c語言是否要多看 ansi-c 的標準規範呢?
我有去試著看 stdio.h 裡面的東西,不過裡面到底是在講什麼?? 好深奧~~~
感謝各位大大指導~~~~~
作者: Qbsuran (Qbsuran)   2014-04-25 19:21:00
就是視而不見
作者: bibo9901 (function(){})()   2014-04-25 20:12:00
原來輸入的第10個字會留在buffer裡面你再scanf一次就會看到了還有, 硬把16個字塞進只有10格的ch會發生什麼事, 這不是編譯器可以預知的
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-04-26 10:44:00
stdio.h裡面的東東根本不用看好ㄇ 想太多
作者: jimboshih (友友)   2014-04-27 04:48:00
112 安安
作者: infinitim37 (世界‧由我定義)   2014-04-28 09:57:00
感謝各位大大,小弟虛心受教,感謝ING~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com