为了账号安全,请及时绑定邮箱和手机立即绑定

cin.getline(str,99)

cin.getline(str,99)

C++
禾则 2018-03-16 16:58:17
为什么不能用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 个字符。

查看完整回答
反对 回复 2018-03-17
  • 禾则
    禾则
    致谢!(`•ω•´)ゞ(`•ω•´)ゞ
  • 1 回答
  • 0 关注
  • 1192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信