Запись и чтение из файлов - C (СИ)

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

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

Помогите доделать программу. Нужно чтоб в данной программе происходила запись всех данных в файл "myfile.txt". А потом производило чтение из этого файла.
Листинг программы
  1. #include <iostream.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include<conio.h>
  5. #include<stdio.h>
  6. int main()
  7. {
  8. clrscr();
  9. cout<<"vvedit FIO"<<endl;
  10. char name[250];
  11. cin.get(name,250);
  12. cout<<"Dovjuna: "<<strlen(name)<<endl;
  13. char*sp=strtok(name,", ");
  14. while(sp)
  15. {
  16. cout<<sp[0];
  17. sp=strtok(NULL, ", ");}
  18. int x;
  19. getch();
  20. return 0;
  21. }

Решение задачи: «Запись и чтение из файлов»

textual
Листинг программы
  1. #include <iostream>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include<conio.h>
  5. #include<stdio.h>
  6. #include <stdlib.h>
  7. using namespace std;
  8. int main()
  9. {
  10.     void wrtnfile(char*, char*);
  11.     void rdfile(char*);
  12.     cout << "vvedit FIO" << endl;
  13.     char nmfile[] = "myfile.txt";
  14.     char line[250];
  15.     while (fgets(line, 250, stdin))
  16.         wrtnfile(line, nmfile);
  17.     rdfile(nmfile);
  18.     int x; 
  19.     getch();
  20.     return 0;
  21. }
  22. void wrtnfile(char *line, char *namefile)//запись
  23. {
  24.     short el = 0;
  25.     FILE *ptr;
  26.     ptr = fopen(namefile, "a");
  27.     while (line[el] && putc(line[el], ptr) != EOF) ++el;
  28.     fclose(ptr);
  29. }
  30. void rdfile(char *namefile)//чтение
  31. {
  32.     short sym = 0;
  33.     char line[250];
  34.     FILE *ptr;
  35.     ptr = fopen(namefile, "r");
  36.     while (fgets(line, 250, ptr)) {
  37.         cout << line;
  38.         char*sp = strtok(line, ", ");
  39.         while (sp) {
  40.             cout << sp[0];
  41.             sp = strtok(NULL, ", ");
  42.         }
  43.         cout << "\nDovjuna: " << strlen(line) << endl << endl;
  44.     }  
  45.     fclose(ptr);
  46. }

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

  1. Включаем необходимые заголовочные файлы:
    • <iostream> для работы с потоками ввода-вывода;
    • <locale.h> для работы с локалью;
    • <string.h> для работы со строками;
    • <conio.h> для работы с клавиатурой и курсором;
    • <stdio.h> для работы с файлами;
    • <stdlib.h> для работы с функциями библиотеки С.
  2. Создаем функцию void wrtnfile(char, char) для записи в файл.
    • Создаем указатель на файл с помощью FILE *ptr = fopen(namefile,a);.
    • Записываем данные в файл с помощью цикла while и функции putc.
    • Закрываем файл с помощью fclose(ptr);.
  3. *Создаем функцию void rdfile(char) для чтения из файла**.
    • Создаем указатель на файл с помощью FILE *ptr = fopen(namefile,r);.
    • Читаем данные из файла с помощью цикла while и функции fgets.
    • Разбиваем строку на подстроки с помощью функции strtok.
    • Выводим каждую подстроку на экран с помощью cout << sp[0];.
    • Выводим длину строки с помощью cout <<\nDovjuna: << strlen(line) << endl << endl;.
    • Закрываем файл с помощью fclose(ptr);.
  4. В функции main() создаем строку-путь к файлу с помощью char nmfile[] =myfile.txt;.
    • Записываем данные в файл с помощью цикла while и функции wrtnfile, передавая в нее строку из стандартного ввода.
    • Читаем данные из файла с помощью функции rdfile, передавая в нее путь к файлу.
    • Ожидаем нажатия клавиши с помощью getch().
  5. Программа завершается возвратом значения 0, что означает успешное выполнение.

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


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

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

11   голосов , оценка 3.818 из 5

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

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

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