Non funziona per 2 motivi.
1) dovrebbe rieseguire l'istruzione precedente ma se metto la condizione per far ciò mi va in un ciclo infinito.
2) quando riabilito il "vecchio" handle mi interrompe l'esecuzione del programma.
istruzione
mysethandle(FALSE);
ma se ometto l'istruzione precedente il programma non mi fa accettare l'input successivo.
andando direttamente alla conclusione.
// ctrlc.cpp : definisce il punto di ingresso dell'applicazione console.
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
int mysethandle(bool x)
{
if ( SetConsoleCtrlHandler(NULL,x) )
{ return 1; }
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a ,b,c,retu;
mysethandle(TRUE);
cout << "inserisci a : ";
cin >> a; //ctrl-c è disabilitato
mysethandle(FALSE);
cout << "inserisci b: ";
cin >> b;
c=a+b;
cout << "a+b = " << c << "\n";
c=a-b;
cout << "a- b = " << c << "\n";
return c;
}
questo naturalmente e un programma di prova che mi servirà di esempio per la creazione di alcune funzioni di input da tastiera insomma per farla breve vorrei riscrivermi la cin.
e come minimamiglioria avevo pensato di gestire le eccezioni.