使用 cin 输入 string 对象

遇到这么一个问题:

想从键盘输入一行字符串,然后输出到终端,不使用Qt

方法一:

         std::string myWords;

         std::cin >> myWords;

         std::cout << myWords << std::endl;

运行程序,在界面输入 I create a new virtual world!

回车,界面输出 I

问题来了,后面的一串字符去哪了?

答: cin 遇空格停止识别,虽然输入很长一串字符,但是cin在第一个遇到第一个空格就停止输入,所以,cin只把 I 写入myWords

        所以,方法一不正确。正确方法见方法二:

方法二:

       std::string myWords;

       std::getline(std::cin, myWords, '\n');

       std::cout << myWords << std::endl;

运行程序,在界面输入 I create a new virtual world!

回车,界面输出 I create a new virtual world! 完全正确。

 

思考:为什么会这样?

cin 遇空格或换行,会停止识别,如果你打算输入的字符串中带1个或多个空格,则采用getline把停止识别的符号设置为‘\n’(即换行符),就能正确输入输出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值