Jak zakończyć pracę programu po wciśnięciu ctrl+d ?

0

Jak w tytule. Program po wciśnięciu tych klawiszy ma wyjść z pętli wykonać jedną funkcję i zakończyć działanie. Czy wie ktoś jak to zaimplementować w c++ ?

...
 int main(void)
{ 
    while(1)
    { 
      //chce zeby po wcisnieciu tych klawiszy program wyszedl z tej petli
    }
    WyswietlStatystyke(Stat); //zrobil to i zakonczyl prace
 }
3

Kombinacja Ctrl + D w systemach Linuksowych oznacza EOF, np. zakończenie danych wejściowych.

#include <iostream>
using namespace std;

void foo()
{
    cout << "foo\n";
}

int main()
{
    char c;
    while (cin >> c);    // ważne: średnik tutaj

    foo();
    return 0;
}
0

Sorki Panowie, ale niestety zaproponowane przez waz rozwiązanie nie działa tak jak bym tego oczekiwał. Program dziwnie się zachowuje i zamiast liczyć poprawnie pojawiają się jakieś artefakty. Dodam ze przed zamienieniem while(1) na for(char c; cin >> c;) wszystko działało elegancko

0

A na jakim systemie to uruchamiasz? Jak pod Windowsem, to nie ctrl + d tylko ctrl +z U mnie ten kod

 #include<iostream>
using namespace std;

int main()
{
    for (int a = 0;cin >> a;)
    {
        cout << a << "\n";
    }
    cout << "koniec";
}

Działa bez problemu, krzaczków itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0