※ 引述《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()看看