C++ 为什么重复5次? void第一句(void){ 串错句; string correctance=“我买了一辆新车”; 不能
这是: 不读取一行,而是一个空格分隔的标记。如果您的输入是正确的句子,这意味着它将在第一次读取C++ 为什么重复5次? void第一句(void){ 串错句; string correctance=“我买了一辆新车”; 不能,c++,string,while-loop,C++,String,While Loop,这是: 不读取一行,而是一个空格分隔的标记。如果您的输入是正确的句子,这意味着它将在第一次读取“I”,而句子的其余部分保留在输入流中。程序正确地确定“I”与“我买了一辆新车”不同,循环并读取“have”第二次。这与正确的句子也不一样,因此它再次循环并读取“bunded”。这将一直持续,直到从流中读取所有内容,此时cin>>incorrectstation;再次阻塞 解决办法是使用 cin >> incorrectSentence; …读取一行。此: void firstSenten
“I”
,而句子的其余部分保留在输入流中。程序正确地确定“I”
与“我买了一辆新车”不同
,循环并读取“have”
第二次。这与正确的句子也不一样,因此它再次循环并读取“bunded”
。这将一直持续,直到从流中读取所有内容,此时cin>>incorrectstation;
再次阻塞
解决办法是使用
cin >> incorrectSentence;
…读取一行。此:
void firstSentence(void){
string incorrectSentence;
string correctSentence = "I have bought a new car";
cout << "Your sentence is: I have buy a new car" << endl;
cout << "Try to correct it: ";
cin >> incorrectSentence;
if(incorrectSentence == correctSentence){
cout << "Goosh. Your great. You've done it perfectly.";
}
else{
firstSentence();
}
}
不读取一行,而是一个空格分隔的标记。如果您的输入是正确的句子,这意味着它将在第一次读取“I”
,而句子的其余部分保留在输入流中。程序正确地确定“I”
与“我买了一辆新车”不同
,循环并读取“have”
第二次。这与正确的句子也不一样,因此它再次循环并读取“bunded”
。这将一直持续,直到从流中读取所有内容,此时cin>>incorrectstation;
再次阻塞
解决办法是使用
cin >> incorrectSentence;
…读取一行。当您单步执行代码时,调试器会告诉您什么?您不需要C++中的
(void)
您键入了什么?为什么要使用递归(如果不正确,请调用firstsense()
)?这应该是一个for、while或do-while
循环。我用while循环完成了它,输出是相同的。这样尝试了一下,没有再次工作。当您单步执行代码时,调试器告诉您什么?在C++中不需要(void)
您键入了什么?为什么要使用递归(如果不正确,请调用first句子()
)?这应该是一个for,while,或do while
循环。我用while循环完成了它,输出相同..这样尝试,没有再次工作..没有cin.getline(incorrectstation);
,getline(cin,incorrectstation);
std::getline
是标题中的一个自由函数。std::istream::getline
(如cin.getline
)与原始缓冲区一起工作。cin.getline(不正确的句子);
,getline(cin,不正确的句子);
是
标题中的一个自由函数。std::istream::getline
(如cin.getline
)与原始缓冲区一起工作。