Работа с файлами: запись, добавление, чтение (найти ошибку в коде) - 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()
, чтобы прочитать строку из файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д