Compare string对cin不起作用
Compare string doesnt work with cin
我正在解决一个微不足道的问题,但我想不出来。如果str1
的开头是"simon说",程序应该输出"simon说"之后的部分。如果我像下面的代码一样运行它,它可以工作,但是如果我自己在cin >> str1;
上输入字符串,它不会。有人能给我点建议吗?(是的,这是一个卡蒂斯问题)
int main()
{
string str1("simon says write a program");
//cin >> str1;
string str2 ("simon says");
if (str1.compare(0,10,str2,0,10) == 0){
cout << str1.substr(11,str1.size());
}
return 0;
}
这是因为std::cin得到空格分隔的字符串。如果您尝试使用
从标准输入中读取字符串std::cin << str1;
// something here
std::cin << str2;
你将输入"simon says", "simon"将进入str1, "says"将进入str2。要读取整行,应该使用
std::getline()
使用cin >> str1
时,如果为句子"Simon write something"打印str1,您将看到str1
的值为"Simon"。
若要不将句子切到第一个空格,请将cin >> str1
替换为getline(cin, str1)
相关文章:
- 为什么当我从 cin 阅读时转义字符不起作用?
- 使用 cin、if 语句和数组不起作用
- cin.fail 在输入数字和字母时不起作用
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- CIN被跳过,Cin.ignore不起作用
- std::cin 语句不起作用 C++
- std::cin 将不起作用
- 为什么 std::cin.clear() 在这个简单的程序中不起作用?
- cin.clear() 和 cin.ignore() 不起作用
- 获取热线(CIN,答案5);在我的程序结束时不起作用
- cin.clear() 不起作用 - 不读取输入
- cin.sync 和 clear 不起作用
- cin.get();当我把它放在 if 语句中时不起作用
- 程序基于用户输入创建多个线程不起作用(cin)
- 连续两个"cin"不起作用
- cin.ignore() 在程序中不起作用
- 为什么 (std::cin >> foo) 语法不起作用?
- C++ cin 和 strnicmp 不起作用
- 在 Ctrl+Z (EOF) 之后从 iostream::cin 恢复读取?("ignore"不起作用)
- std::cin在do-while循环中不起作用