我的问题基于这个简单的代码:
#include
using namespace std;
int main() {
string buf;
while (cin >> buf && !buf.empty()) {
cout << "input is " << buf << "\n";
}
return 0;
}
操作符>> cin(它是basic_istream类型的对象)读取并丢弃任何前导空格(例如空格,换行符,制表符).然后运算符>>读取字符直到遇到下一个空白字符.操作符最终返回流本身,cin.
如果没有设置至少一个eost,eof,fail或bad,就不可能输入一个空字符串?因此,流与运算符bool转换为false.我认为!buf.empty()在这里是多余的,但这是一个好习惯.有没有办法让cin的iostate保持良好状态并将字符串留空?
用法示例:
1.输入您选择的单词
2.按回车键
3.按Ctrl d(UNIX上的EOF)或Ctrl d(Windows上的EOF)
谢谢
c语言cin取字符串 c – 是否可以从cin中读取一个空字符串 并且仍然可以从cin.good()获得真实的字符串?...