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

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

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

Помогите доделать программу. Нужно чтоб в данной программе происходила запись всех данных в файл "myfile.txt". А потом производило чтение из этого файла.
#include <iostream.h>
#include <locale.h>
#include <string.h>
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
cout<<"vvedit FIO"<<endl;
char name[250];
cin.get(name,250);
cout<<"Dovjuna: "<<strlen(name)<<endl;
char*sp=strtok(name,", ");
while(sp)
{
cout<<sp[0];
sp=strtok(NULL, ", ");}
int x;
getch();
return 0;
}

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

textual
Листинг программы
#include <iostream>
#include <locale.h>
#include <string.h>
#include<conio.h>
#include<stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    void wrtnfile(char*, char*);
    void rdfile(char*);
    cout << "vvedit FIO" << endl;
    char nmfile[] = "myfile.txt";
    char line[250];
    while (fgets(line, 250, stdin))
        wrtnfile(line, nmfile);
    rdfile(nmfile);
    int x;  
    getch();
    return 0;
}
void wrtnfile(char *line, char *namefile)//запись
{
    short el = 0;
    FILE *ptr;
    ptr = fopen(namefile, "a");
    while (line[el] && putc(line[el], ptr) != EOF) ++el;
    fclose(ptr);
}
void rdfile(char *namefile)//чтение
{
    short sym = 0;
    char line[250];
    FILE *ptr;
    ptr = fopen(namefile, "r");
    while (fgets(line, 250, ptr)) {
        cout << line;
        char*sp = strtok(line, ", ");
        while (sp) {
            cout << sp[0];
            sp = strtok(NULL, ", ");
        }
        cout << "\nDovjuna: " << strlen(line) << endl << endl;
    }   
    fclose(ptr);
}

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

  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