为什么不能用cin>>str?
ヾ(≧∇≦谢谢≧∇≦)ノ
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
你可以试试改成 cin >> 会如何。
改了的话,根本就读不到空格了。
一般来说,>> 会跳过开始的“空白字符”并一直读取到下一个“空白字符”为止,所谓空白字符是指空格、换行、tab等。 看起来你输入的内容肯定一开始就是空格。那么 >> str 的话,str 中就没有前面的空格了。
而 cin.getline 函数,如其名所示,会读取所有的输入内容直到 '\n'(但 \n 不会被保存进 str)为止,或读取了“第二个参数-1”个字符为止。 所以用 getline 才能将开始的空格都保存进 str 中。
另外,你其实可以写 cin.getline(str, 100) 的。因为它会考虑到结尾补 \0 字符,所以最多只会读 100-1 个字符。
- 1 回答
- 0 关注
- 1198 浏览
添加回答
举报
0/150
提交
取消