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
)与原始缓冲区一起工作。