Работа с файлами: запись, добавление, чтение (найти ошибку в коде) - C (СИ)
Формулировка задачи:
Надо создать программу для работы с файлами. Вводим значения:
1: запись
2:добавление
3:чтение
Только вот сразу после ввода значения окно программы закрывается. Вот код:
//Г°Г*áîòГ* Г± ГґГ*éëГ*ìè #include <stdio.h> void filerew() { FILE *myfile; myfile = fopen("myfile.txt","wt"); char *st; system("cls"); printf("enter string: \n"); gets(st); fputs(st,myfile); fclose(myfile); } void fileadd() { FILE *myfile; myfile = fopen("myfile.txt","at"); char *st; system("cls"); printf("enter string: \n"); gets(st); fputs(st,myfile); fclose(myfile); } void fileread() { int n=50; FILE *myfile; myfile = fopen("myfile.txt","r"); char arr[n]; while(fgets(arr,n,myfile) != NULL) printf("%s",arr); printf("\n"); fclose(myfile); } int main() { int flag; printf("enter 1 for rewrite, 2 for complete,3 for read other to exit: "); scanf("&d",flag); switch(flag) { case 1:filerew(); return 0; break; case 2:fileadd(); return 0; break; case 3:fileread(); return 0; default:return 0; break; } }
Решение задачи: «Работа с файлами: запись, добавление, чтение (найти ошибку в коде)»
textual
Листинг программы
#include <stdio.h> #include <conio.h> void operation(int arg ) { if (arg = 49) { FILE *myfile; myfile = fopen("myfile.txt","wt"); char st[120]; // system("cls"); printf(" \n enter string: \n"); gets(st); fputs(st,myfile); fclose(myfile); } else if (arg = 50) { FILE *myfile; myfile = fopen("myfile.txt","at"); char st[120]; //system("cls"); printf("enter string: \n"); gets(st); fputs(st,myfile); fclose(myfile); } else if (arg = 51) { FILE *myfile; myfile = fopen("myfile.txt","r"); int n=50; char arr[n]; while(fgets(arr,n,myfile) != NULL) printf("%s",arr); printf("\n"); getch(); fclose(myfile); } } int main() { int flag; printf("enter 1 for rewrite, 2 for complete,3 for read other to exit: "); //scanf("&d",&flag); flag = getch(); operation(flag); return 0; }
Объяснение кода листинга программы
- Объявлена функция
operation(int arg)
, которая принимает целочисленный аргументarg
. - В функции
main()
объявлена переменнаяflag
типаint
, которая используется для ввода пользователем числа. - В функции
main()
выводится приглашение для ввода числа. - В функции
main()
вызывается функцияoperation(flag)
, передавая ей значение переменнойflag
. - В функции
operation(int arg)
проверяется значение аргументаarg
. - Если
arg
равно 49, то открывается файлmyfile.txt
в режиме записи (wt
), пользователь вводит строку, которая записывается в файл, файл закрывается. - Если
arg
равно 50, то открывается файлmyfile.txt
в режиме добавления (at
), пользователь вводит строку, которая записывается в файл, файл закрывается. - Если
arg
равно 51, то открывается файлmyfile.txt
в режиме чтения (r
), пользователь вводит число 50, которое используется как размер массива, пользователь вводит строки, которые читаются из файла и выводятся на экран, файл закрывается. - В функции
main()
пользователю предлагается ввести число 1, 2 или 3. - В функции
main()
вызывается функцияoperation(flag)
. - В функции
main()
возвращается 0, что означает успешное завершение работы программы. - В функции
operation(int arg)
используются условные операторыif-else if-else
, чтобы проверить значение аргументаarg
. - В функции
main()
используется функцияgetch()
, чтобы получить введенное пользователем число. - В функции
main()
используется функцияscanf()
, чтобы получить введенное пользователем число. - В функции
main()
используется функцияprintf()
, чтобы вывести приглашение для ввода числа. - В функции
main()
используется функцияgets()
, чтобы получить введенную пользователем строку. - В функции
operation(int arg)
используется функцияfopen()
для открытия файлаmyfile.txt
. - В функции
operation(int arg)
используется функцияfputs()
для записи строки в файл. - В функции
operation(int arg)
используется функцияfclose()
для закрытия файла. - В функции
operation(int arg)
используется функцияfgets()
, чтобы прочитать строку из файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д