Я пишу крошечную оболочку для моего предмета, и мне нужно поймать Ctrl-C и обработать ее.У меня есть бесконечный цикл для получения пользовательских команд, пока они не наберут «выход».Когда я не набрал Ctrl-C, все в порядке, моя программа получает команду пользователя и обрабатывает ее одну за другой.Но когда я набираю Ctrl-C, моя программа не получает никаких пользовательских команд с того времени.И у меня есть бесконечный цикл, но я не могу ничего печатать, кроме Ctrl-C.
Я пытаюсь поместить fflush (stdin) в начало getline, но это не работает.Я пытаюсь перечислить все темы в процессе, и это всегда один.Всегда есть одна нить.
#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<stdio.h>
#include<tchar.h>
#include<psapi.h>
#include<vector>
#include<string>
using namespace std;
BOOL WINAPI consoleHandler(DWORD signal)
{
if(signal == CTRL_C_EVENT)
cout << "^C";
return TRUE;
}
int main()
{
SetConsoleCtrlHandler(consoleHandler, TRUE);
string userInput;
while(true)
getline(cin, userInput);
return 0;
}
Ожидайте: после того, как я наберу консоль CTRL-C, напечатайте «^ C», и программа получит мою следующую команду