簡體   English   中英

重用char數組和cin.getline

[英]reuse char array and cin.getline

我無法在圈子中第二次或更長時間使用s1 [40],並且它總是滿的,

cin.getline(s1,40)在以后的時間被忽略

char s1[40], ans = 'y';
while (ans == 'y')
{       
system("cls");
cout << "\n Enter a sentence : ";
cin.getline(s1, 40);
fflush(stdin);

cout << "\n________________________________________\n\n Again?(y/n)";
cin >> ans;
fflush(stdin);
};

cin >> ans; 實際上不會刪除eol,因此下一個getline將讀取一個空行,並且cin >> ans; 將讀取行的第一個符號。 您應該使ans以及使用getline兩次:

for(;;)
{
    char s1[40]{};
    system("cls");
    cout << "\n Enter a sentence : ";
    cin.getline(s1, 40);
    fflush(stdin);
    if(cin.fail() or cin.bad())
    {
        cout << "fail" << endl;
        break;
    }
    cout << "\n________________________________________\n\n Again?(y/n)";
    char ans[2]{};
    cin.getline(ans, 2);
    fflush(stdin);
    if(cin.fail() or cin.bad())
    {
        cout << "fail" << endl;
        break;
    }
    if(0 != strcmp("y", ans))
    {
        break;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM