2015-12-16 15 views
-3

Я новичок в C. Я изучал функцию scanf(), и произошла ошибка, когда я запускаю файл .exe, он выполняет, дает правильный вывод и закрывает; но он снова выполняет сам по себе, запрашивает ввод и дает правильный вывод и закрывается. Вот мой код:Программа C scanf выполняется 2 раза

#include <stdio.h> 

int main() { 
    int a; 
    printf("Enter a num\n"); 
    scanf("%d", &a); 
    int b = 1601; 
    if (a == b) { 
     printf("Found a match!!"); 
    } else { 
     printf("Match not found!"); 
    } 
    return 0; 

} 
+0

В коде есть только одна ошибка. Вы игнорируете, что возвращает 'scanf()'. Вы должны написать 'if ((scanf ("% d ", & a) == 1) && (a == b))' вместо 'if (a == b)'. Помимо этого, нет причин для описанного поведения, по крайней мере, не проблема с кодом. Не могли бы вы предоставить более подробную информацию о своей среде и о том, как вы тестируете файл * .exe *? –

+1

Что вы вводите при запуске программы в первый раз? –

+0

Я использую компилятор MinGW gcc в Windows XP. –

ответ

0

Код хорошо работает в Ubuntu 14.04. Иногда в MS Windows + MinGW возникают проблемы. Если вы хотите разработать программу с помощью gcc, вы должны использовать Unix Like Operating System (Linux, BSD и т. Д.). Если вы хотите использовать MS Windows, вам следует использовать MS Visual Studio для достижения наилучшего результата.

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