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