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