Код не компилируется или выдает ошибку при использовании scanf в C, зависает навсегда - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу предвосхитить это информацией о том, что я довольно неопытен в кодировании.

Всякий раз, когда я пытаюсь скомпилировать свой код, он никогда не завершает сборку и никогда не выдает ошибку.Затем я должен использовать диспетчер задач, чтобы остановить stuck.exe (воткнуло имя файла c), чтобы я мог попытаться снова скомпилировать.Я сузил проблему, связанную с функцией scanf.

#include <stdio.h>

int main(void) {
    int number = 0;
    printf("this line shouldn't break anything. number = %d\n", number);
    printf("what should the new value of number be?: ");

    scanf("%d", &number);

    return 0;
}

Когда я удаляю строку, имеющую функцию scanf, остальная часть кода компилируется как следует.

Я делаю все это в SublimeText3 в Windows 10 и использую GCCпредоставлено MinGW.

Буду признателен за любую информацию, которую вы можете мне помочь, и если вам нужна дополнительная информация, сообщите мне.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Если у вас есть процесс stuck.exe, это означает, что программа завершила компиляцию и была автоматически запущена IDE / текстовым редактором.scanf читает со стандартного ввода, но, очевидно, IDE не выполняет его в интерактивном режиме, поэтому вы не можете ввести номер через IDE.

В вашей среде IDE необходимо использовать Скомпилируйте или команду Build (а не Run ) и вызовите stuck.exe вручную в окне командной оболочки.

0 голосов
/ 18 февраля 2019

Даже мой компилятор - GCC-MinGW, и я использую Vscode, и ваша программа прекрасно работает даже с онлайн-компиляторами. Возможно, есть проблема с вашей установкой C или проверьте, не переполнена ли ваша системная память, это может вызвать проблемы, подобные этиминогда.

...