Re: [問題] string gets的用法
看板C_and_CPP作者soheadsome (師大狗鼻哥)時間11年前發表 (2014/07/19 15:33), 11年前編輯推噓2(2推 0噓 14→)留言16則, 5人參與討論串2/2 (看更多)
※ 引述《ga544523 (美麗新世界)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: c++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: string
: iostream
: 問題(Question):
: 1.這是我打的一個用string的爛東東
: 自己在vc2010c++上執行時會出錯
: 但用線上編譯器ide執行時卻好像沒問題
: 請問這到底是?
: http://ideone.com/PL1Lx0
首先 std::string 實作品
沒有保證最後一個字元一定是'\0'(或是0)
我忘了是看c++那本書有提到 應該是effective c++
所以你這樣執行有可能是undefined behavier
: 2.
: 再來就是gets
: 我知道是一個可以讓你輸入包括空白字元的字串函數
: 但好像如果gets上面有像cin scanf之類的函數
: 他就會自動忽略gets
: 像這樣
: http://ideone.com/nMoXMX
: 自己是有找到解決辦法就是在gets上面+個getchar()
: 但為什麼這樣就可以還是搞不懂
: 希望有人可以幫我解答
: 感恩喔
這問題看不是很懂
你是要說gets沒被執行到的原因嗎?
應該又是跟緩衝區有關的事情
我學c/c++到現在還是很難理解緩衝區的運作
你可以試著在每次cin後先fflush()看看
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.122.216.52
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1405784014.A.11D.html
推
07/20 01:11, , 1F
07/20 01:11, 1F
→
07/20 01:51, , 2F
07/20 01:51, 2F
推
07/20 09:22, , 3F
07/20 09:22, 3F
→
07/20 09:23, , 4F
07/20 09:23, 4F
→
07/20 09:23, , 5F
07/20 09:23, 5F
→
07/20 09:24, , 6F
07/20 09:24, 6F
→
07/20 09:25, , 7F
07/20 09:25, 7F
→
07/20 09:26, , 8F
07/20 09:26, 8F
→
07/20 09:32, , 9F
07/20 09:32, 9F
→
07/20 09:33, , 10F
07/20 09:33, 10F
→
07/20 10:50, , 11F
07/20 10:50, 11F
→
07/20 10:51, , 12F
07/20 10:51, 12F
→
07/20 10:51, , 13F
07/20 10:51, 13F
→
07/20 14:51, , 14F
07/20 14:51, 14F
如果是11才有保證 原po在VS10出問題應該算正常的吧?
※ 編輯: soheadsome (140.122.216.52), 07/21/2014 00:10:35
→
07/21 00:10, , 15F
07/21 00:10, 15F
→
07/21 00:11, , 16F
07/21 00:11, 16F
原來還可以這樣XD
※ 編輯: soheadsome (140.122.61.235), 07/21/2014 11:46:55
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):