為什麼這篇c gets用法鄉民發文收入到精華區:因為在c gets用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者soheadsome (師大狗鼻哥)看板C_and_CPP標題Re: [問題] string g...
※ 引述《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
※ 編輯: soheadsome (140.122.216.52), 07/21/2014 00:10:35
※ 編輯: soheadsome (140.122.61.235), 07/21/2014 11:46:55