2014-02-15 3 views
0

SO в Linux я мог бы, вероятно, закончить While-цикл с такого кода, если я компиляции с GCC:Как закончить программу c с помощью Ctrl + D в окнах?

#include <stdio.h> 

int main() 
{ 
    int s; 
    while(scanf("d%",&s)!=EOF); 
    { 
     scanf("%d",&s); 
      } 
    return 0; 
} 

Однако это не работает с компьютером Windows и компилятор Im использованием является Microsoft Visual Studio 12 . Какие-либо предложения?

+1

Что-то не так с Alt + F4? (Или это то, что вы искали) –

+0

'scanf' не возвращает' EOF', вы думаете о 'getchar' ... – zwol

+0

Возможный дубликат [Ctrl + D, не останавливающий выполнение приложения в командном окне] (http : //stackoverflow.com/questions/12001894/ctrld-not-stopping-application-from-executing-in-command-window) –

ответ

2
#include <stdio.h> 

int main() { 
    int s; 
    while((s = getchar()) != EOF) { 
     printf("%d\n", s); 
    } 
    printf("%d - at EOF\n", s); 
} 

вы можете попробовать это

+0

Это работает так, как предполагается на самом деле, спасибо! – Tensora

+0

вы приветствуете @Tensora –

+0

Просто вопрос по этому вопросу, если я хочу напечатать что-то в whileloop, прежде чем пользователь получит входные данные, как я мог это сделать? потому что теперь он запрашивает у пользователя первое, что он делает в программе? – Tensora

1

Попробуйте с Strg + с или STRG + г. Я думаю, что это было, что заставляет EOF

+0

это не работает ни для меня, по крайней мере, не для этого кода: ( – Tensora

+1

^Z *, а затем Return * в окне DOS эквивалентно ^D в TTY Unixy – zwol

+0

Как ни странно, если я создаю петлю. с while (1> 0), Ctrl + c заканчивает программу, вы думаете, мой учитель будет доволен этим?: p – Tensora

Смежные вопросы