2

Я в программировании пока что чайник, только начал изучать, проблема такова: Написал самую простую программку Hello world (изучаю С С++), всё написал скомпилировал, запускаю через командную строку всё работает вот код

#include <stdio.h>

int main()
{
  printf("hello World!\n");

  return 0;
}

но попытавшись запустить EXE фаил он тут же закрывается, а в командной строке всё отлично работает. Вопрос в чём проблема и как решить подскажите!!!!

  • 1
    Он у вас сразу же закрывается, потому что вы ничего не написали, чтобы он ждал какой-то реакции пользователя. – Unick Mar 21 '18 at 13:27
  • Как пример - те же виндовые програмы(команды) ping и ipconfig так работают. – nick_n_a Mar 21 '18 at 13:36

3 Answers3

3

Просто программа исполнилась и закрылась. Если запускать из консоли, return 0; в main() отдает управление обратно консоле, с кодом 0 (нормальное завершение программы), и можно продолжать роботу. Если надо не закривать окно консоли вызваной через a.exe, можно добавить в код getchar();

#include <stdio.h>

int main(void)
{
    printf("hello World!\n");
    getchar();
    return 0;
}

Программа завершиться после нажатия Enter. Или второй вариант:

#include <stdio.h>
#include <cstdlib>

int main(void)
{
    printf("hello World!\n");
    system("pause");
    return 0;
}
lihizu
  • 46
1

Потому что при "попытке запустить ЕХЕ файл" (очевидно, из среды разработки или из Windows Explorer-a) открывается новое консольное окно, которое автоматически закрывается, когда программа отработала.

  ...
  printf("\nPress any key to finish.\n");
  getchar();
  return 0;
}
1

Для того чтоб файл не закрывался, нужно вызвать сообветствующий метод, в builder это getch(), в вижле _getch(), инклюд conio.h и там и там