Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在c+中捕捉ctrl-c+;原因忽略扫描_C++ - Fatal编程技术网

C++ 在c+中捕捉ctrl-c+;原因忽略扫描

C++ 在c+中捕捉ctrl-c+;原因忽略扫描,c++,C++,我正试图抓住Ctrl+c。我在谷歌上搜索并找到以下代码: #include <windows.h> #include <iostream> #include <signal.h> #include<cstdio> using namespace std; BOOL WINAPI ConsoleHandler(DWORD CEvent){ if(CEvent == CTRL_C_EVENT){ cout<<"ct

我正试图抓住Ctrl+c。我在谷歌上搜索并找到以下代码:

#include <windows.h>
#include <iostream>
#include <signal.h>
#include<cstdio> using namespace std;

BOOL WINAPI ConsoleHandler(DWORD CEvent){
    if(CEvent == CTRL_C_EVENT){
        cout<<"ctrl c pressed"<<endl;
        Sleep(100);
    }
    return TRUE; }

int main(int argc, char *argv[]){
    char a[10];

    if (SetConsoleCtrlHandler( (PHANDLER_ROUTINE)ConsoleHandler,TRUE)==FALSE){
        cout<<"Unable to install handler!";
        return -1;
    }
    while(true){
        fflush(stdin);
        scanf("%[^\n]s",a);
        cout<<a<<endl;
    } }
#包括
#包括
#包括
#包括使用名称空间标准;
布尔WINAPI控制台手柄(DWORD CEvent){
如果(CEvent==CTRL\U C\U事件){

cout再次输出“abcd”的原因是它仍然在上次的
a
变量中。修复它的最佳方法是使用
scanf
的返回值
scanf
返回填写的项目数,因此在您的情况下,您希望它返回1

if (scanf("%[^\n]s", a) == 1)
    cout<<a<<endl;
if(scanf(“%[^\n]s”,a)==1)

当用户按下Ctrl+C时,除了显示Ctrl+C按下之外,您还希望发生什么?