我有一個簡單的程序,啓動一個循環計時器,然後安置到解析任何輸入數據的getline循環中。但是,每當發生定時器信號時,就會結束getline函數,這看起來好像用戶按下了輸入。我怎樣才能阻止這樣做的信號?否則,我該如何區分真正的返回印刷機和信號?後者不太理想,因爲我將不得不以400Hz運行這個差異代碼。std :: getline和posix信號
以下是我目前使用的代碼來獲取一行。一個空白輸入將重新打印APP>行,而任何其他輸入通過。
do
{
std::cin.clear();
line.clear();
std::cout << "APP > ";
std::getline(std::cin, line);
}
while (line.length() == 0);
感謝所有
馬特
你不檢查'std :: cin'的狀態。我想知道在鬧鐘響起後是否設置了故障位。 –
阿哈,似乎是沿着正確的路線。我以前嘗試過比較failbit和badbit的直接狀態而沒有運氣,但是似乎使用fail()函數可以做到這一點。謝謝! –
我發表了評論一個答案,以便您可以關閉此問題。 –