C cin迴圈輸入,結束後再次執行輸入操作

2021-10-04 18:42:18 字數 588 閱讀 8252

迴圈建立單向鍊錶

#include using namespace std;

class listnode

};int main()

cin.clear(); //及時清除緩衝區

cin.ignore();

head = head->next;

int k;

cin >> k;

cout << "k" << k << endl;

listnode *m = head;

while (m != nullptr)

return 0;

}

cin遇到ctrl+z / ctrl+d便認為輸入結束,也就是不再接受鍵盤的輸入(但是它會讀取緩衝區已經存在的資料),此時ctrl+z還是會留在緩衝區內!!!!!!cin再去讀的時候,發現緩衝區存在ctrl+z(上次跳出迴圈遺留下的),於是它就走了,也就是啥都沒讀到。所以使用者也無法輸入。

解決辦法就是及時清除緩衝區,也就是在程式跳出迴圈後利用函式:

cin.clear();

cin.ignore();

如何讓執行緒A等待B執行結束後執行?

1.使用條件變數 判斷是否任務b已經做完,然後再執行任務a。測試 可看 2.使用countdownlatch。countdownlatch其實可以把它看作乙個計數器,只不過這個計數器的操作是原子操作,同時只能有乙個執行緒去操作這個計數器,也就是同時只能有乙個執行緒去減這個計數器裡面的值。你可以向co...

當shell結束後執行其他的操作

option explicit private const wait infinite 1 private const synchronize h100000 private declare function openprocess lib kernel32 byval dwdesiredacces...

scanf 的輸入格式與 EOF 如何結束迴圈

參考 1,scanf d n 以回車作為輸出的結束標誌。返回值為 eof,可以按下下述按鈕結束迴圈,ctrl z 回車 ctrl z 回車 ctrl z 回車 2,scanf s s 以空白字元作為輸出的結束標誌,該空白字元會被丟棄,但要回車才能進入迴圈體內。返回值為 eof,可以按下下述按鈕結束迴...