Работа с файлами: запись, добавление, чтение (найти ошибку в коде) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Надо создать программу для работы с файлами. Вводим значения: 1: запись 2:добавление 3:чтение Только вот сразу после ввода значения окно программы закрывается. Вот код:
Листинг программы
  1. //Г°Г*áîòГ* Г± ГґГ*éëГ*ìè
  2. #include <stdio.h>
  3. void filerew()
  4. { FILE *myfile;
  5. myfile = fopen("myfile.txt","wt");
  6. char *st;
  7. system("cls");
  8. printf("enter string: \n");
  9. gets(st);
  10. fputs(st,myfile);
  11. fclose(myfile);
  12. }
  13. void fileadd()
  14. { FILE *myfile;
  15. myfile = fopen("myfile.txt","at");
  16. char *st;
  17. system("cls");
  18. printf("enter string: \n");
  19. gets(st);
  20. fputs(st,myfile);
  21. fclose(myfile);
  22. }
  23. void fileread()
  24. { int n=50;
  25. FILE *myfile;
  26. myfile = fopen("myfile.txt","r");
  27. char arr[n];
  28. while(fgets(arr,n,myfile) != NULL)
  29. printf("%s",arr);
  30. printf("\n");
  31. fclose(myfile);
  32. }
  33.  
  34. int main()
  35. {
  36. int flag;
  37. printf("enter 1 for rewrite, 2 for complete,3 for read other to exit: ");
  38. scanf("&d",flag);
  39. switch(flag)
  40. {
  41. case 1:filerew();
  42. return 0;
  43. break;
  44. case 2:fileadd();
  45. return 0;
  46. break;
  47. case 3:fileread();
  48. return 0;
  49. default:return 0;
  50. break;
  51. }
  52. }

Решение задачи: «Работа с файлами: запись, добавление, чтение (найти ошибку в коде)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. void operation(int arg )
  5. {
  6.      if (arg = 49)
  7.      {
  8.               FILE *myfile;
  9.               myfile = fopen("myfile.txt","wt");
  10.               char st[120];
  11.     // system("cls");
  12.               printf(" \n enter string: \n");
  13.               gets(st);
  14.               fputs(st,myfile);
  15.               fclose(myfile);
  16.               } else
  17.     if (arg = 50)
  18.     {
  19.             FILE *myfile;
  20.             myfile = fopen("myfile.txt","at");
  21.             char st[120];
  22.      //system("cls");
  23.              printf("enter string: \n");
  24.              gets(st);
  25.              fputs(st,myfile);
  26.              fclose(myfile);
  27.              } else
  28.       if (arg = 51)
  29.       {
  30.              
  31.               FILE *myfile;
  32.               myfile = fopen("myfile.txt","r");
  33.               int n=50;
  34.               char arr[n];
  35.               while(fgets(arr,n,myfile) != NULL)
  36.               printf("%s",arr);
  37.               printf("\n");
  38.               getch();
  39.               fclose(myfile);
  40.               }
  41.               }  
  42.     int main()
  43.     {
  44.         int flag;
  45.         printf("enter 1 for rewrite, 2 for complete,3 for read other to exit: ");
  46.         //scanf("&d",&flag);
  47.         flag = getch();
  48.         operation(flag);
  49.         return 0;
  50.         }

Объяснение кода листинга программы

  1. Объявлена функция operation(int arg), которая принимает целочисленный аргумент arg.
  2. В функции main() объявлена переменная flag типа int, которая используется для ввода пользователем числа.
  3. В функции main() выводится приглашение для ввода числа.
  4. В функции main() вызывается функция operation(flag), передавая ей значение переменной flag.
  5. В функции operation(int arg) проверяется значение аргумента arg.
  6. Если arg равно 49, то открывается файл myfile.txt в режиме записи (wt), пользователь вводит строку, которая записывается в файл, файл закрывается.
  7. Если arg равно 50, то открывается файл myfile.txt в режиме добавления (at), пользователь вводит строку, которая записывается в файл, файл закрывается.
  8. Если arg равно 51, то открывается файл myfile.txt в режиме чтения (r), пользователь вводит число 50, которое используется как размер массива, пользователь вводит строки, которые читаются из файла и выводятся на экран, файл закрывается.
  9. В функции main() пользователю предлагается ввести число 1, 2 или 3.
  10. В функции main() вызывается функция operation(flag).
  11. В функции main() возвращается 0, что означает успешное завершение работы программы.
  12. В функции operation(int arg) используются условные операторы if-else if-else, чтобы проверить значение аргумента arg.
  13. В функции main() используется функция getch(), чтобы получить введенное пользователем число.
  14. В функции main() используется функция scanf(), чтобы получить введенное пользователем число.
  15. В функции main() используется функция printf(), чтобы вывести приглашение для ввода числа.
  16. В функции main() используется функция gets(), чтобы получить введенную пользователем строку.
  17. В функции operation(int arg) используется функция fopen() для открытия файла myfile.txt.
  18. В функции operation(int arg) используется функция fputs() для записи строки в файл.
  19. В функции operation(int arg) используется функция fclose() для закрытия файла.
  20. В функции operation(int arg) используется функция fgets(), чтобы прочитать строку из файла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут