Цикл должен прекращаться после пробела, но программа не реагирует и не выходит из цикла - C (СИ)
Формулировка задачи:
#include <stdio.h> int main() { char num[10]; FILE *file; if ((file = fopen("1.txt", "w")) == NULL) printf("File can not open or create\n"); else { for (;;) { scanf("%s", num); if (num == ' ') break; fprintf(file, "%s", num); } } fclose(file); }
Решение задачи: «Цикл должен прекращаться после пробела, но программа не реагирует и не выходит из цикла»
textual
Листинг программы
#include <stdio.h> int main() { char num[10]; char c; int i; FILE *file; if ((file = fopen("1.txt", "w")) == NULL) printf("File can not open or create\n"); else { for (i=0;;i++) { c=getchar(); if (c == ' ') break; num[i]=c; } num[i]=0; fprintf(file, "%s", num); } fclose(file); }
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека ввода-вывода
. - Затем определена функция main(), которая является точкой входа в программу.
- Создаются переменные:
- char num[10] - массив символов на 10 элементов для хранения числового значения;
- char c - символ, который будет использоваться в цикле;
- int i - переменная счетчик для цикла;
- FILE *file - указатель на файл, который будет использоваться для записи данных.
- Выполняется проверка на открытие файла
1.txt
в режиме записиw
. Если файл не может быть открыт или создан, выводится сообщение об ошибке. - Если файл успешно открывается, выполняется цикл for, который будет выполняться до тех пор, пока не встретит пробел.
- Внутри цикла считывается очередной символ с помощью функции getchar().
- Если считанный символ является пробелом, выполняется операция break, чтобы выйти из цикла.
- Если считанный символ не является пробелом, он добавляется в массив num.
- После окончания цикла, в массив num добавляется нулевой символ, чтобы обозначить конец строки.
- Записанное значение в массиве num затем записывается в файл с помощью функции fprintf().
- В конце программы файл закрывается с помощью функции fclose().
- Значение переменной file не используется в коде, но оно должно быть равно NULL после вызова функции fclose().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д