PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] scanf()問題
作者:
anoymouse
(沒有暱稱)
2014-11-19 01:04:21
char str[10]="";
scanf("%s",str); 為什麼我輸入超過10個數字
printf("%s",str); 可以顯示超過十個數字? 但是如果輸入太多就不行(停止回應)
sizeof(str);會是10 輸入超過10個字還是10
strlen(str);會是0 為什麼? 如果有預設值 那電腦會自動加'\0' 便會是對的
然後我在下面加for迴圈跑比如說16次因為我輸入16個字
也是照樣printf出16個字。
作者:
PoorLoser
(廢文製造機)
2014-11-19 01:13:00
overflow 啊, 蓋掉某些東西還可以跑但會不正常sizeof 回傳陣列大小 strlen 從基底讀到第一個 \0
作者:
anoymouse
(沒有暱稱)
2014-11-19 01:20:00
我看網路上說 scanf輸入完會自動加'\0'
作者:
PoorLoser
(廢文製造機)
2014-11-19 01:41:00
限制字數, 例如限制 5 byte 要用 %5s, 不然會繼續寫入然後後面的程式碼就被覆蓋惹 QQ
作者:
anoymouse
(沒有暱稱)
2014-11-19 02:00:00
不管我輸入幾個字 strlen都還是0耶 除非事先宣告
作者:
dirkc
(3781615)
2014-11-19 09:55:00
可以把code貼上來,多半是使用的問題,strlen的實作很單純
作者:
jacky1989
2014-11-19 14:14:00
會自動容錯一點點,scanf會幫你加上\0不過還是計算好字串長度比較保險
繼續閱讀
[問題] opencv遺失CVHARRTRAINING.DLL
jkowaur
[問題] 組合語言請求解釋
adam77x
Re: [理工] 程式語言觀念
littleshan
Re: [理工] 程式語言觀念
ando5566
Re: [理工] 程式語言觀念
bachelorwhc
Fw: [理工] 程式語言觀念
gauss760220
[問題] THX
laputaca
[問題] 如何讓程式持續等待指令內容
love606009
[問題] WIN7&WIN8PATH的預設值
lunashining
[問題] for迴圈{ }的影響
davis20204
Links
booklink
Contact Us: admin [ a t ] ucptt.com