Єдина Країна!

Головне меню

Наша кнопка

Українські уроки про ІТ

Друзі

Підтримка української армії


Головна Програмування - C++ Базовий курс програмування на С++. Робота з текстовими файлами в C++.

Базовий курс програмування на С++. Робота з текстовими файлами в C++.
Написав Joker   
Неділя, 03 квітня 2016 13:26
Переглядів: 2149

 

Inspiration is for amateurs. I just get to work.

©Чак Клоуз

Це маленький додаток до ваших знань, ви можете під час уроку випити філіжанку смачної кави.

Сьогодні ми будемо працювати з текстовими файлами.

 

 

Firststep: Підключити потрібну бібліотеку.

#include <fstream>

Тепер можна створювати текстові файли, записувати в них дані  і отримувати дані з текстових файлів. Залишилося навчитися користуватися цим.

Почнемо із виводу у файл.

Спершу пишемо:

ofstream fout;

Це розшифровується як output file stream. fout можна замінити на іншу назву. Але вся ця робота дуже схожа на звичайний cout та cin, навіщо запам’ятовувати зайву інформацію. Але ви маєте повне право назвати його по-іншому. Надалі я продовжу використовувати fout.

Текстовий файл, як мінімум, повинен мати ім’я.

fout.open(“My  Text.txt”);

У папці з проектом створюється текстовий файл з назвою My Text. Якщо такий уже існує, то він буде змінений, а попередня інформація буде втраченою.

Це все. Далі робота майже нічим не відрізняється від cout.

fout<< “goals. achievеment. glory.”;

У текстовий файл буде записано goals. achievement. glory.

Це може бути не тільки текст. Наприклад підрахуємо  у наступному рядку суму чисел від 1 до 10.

Весь код:

#include  <iostream>
#include  <iomanip>
#include  <vector>
#include  <conio.h>
#include  <fstream>	
#include  <cstring>
#include  <cmath>
#include  <algorithm>
#include  <ctime>
using namespace std;

int main ()
{
   ofstream fout;
   fout.open ("Text.txt");

   fout << "Hello world. I am Misha" << endl;

   int sum = 1;
   for (int i=2; i<10; ++i)
	sum+=i;
   fout << sum;

    _getch();
   return  0;
}

 

Ну але все ж не завжди потрібно втрачати інформацію, яка містилася у файлі до виконання програми, а просто доповнити його, продовжити вивід після вже написаного тексту.

 

Це не важко виправити.

fout.open (“text.txt”, ios::app)

Нагадаю, таким чином ви не зміните файл, а доповнюєте існуючий.

Ну і закриємо файл:

fout.close();

Тепер спробуємо зробити все навпаки.

Потрібно зчитати дані з текстового файлу.

Замість ofstream пишемо ifstream

Було fout, тепер буде fin (cin -> console input; fin -> file input)

Отже:

ifstream fin;

fin.open(“Text.txt”);

Ще потрібно перевірити чи існує даний файл.

Це робиться таким чином:

if (!fin.is-open())

cout<< “file not found’ <<endl;

else {

}

Ну і знати точний розмір файлу теж не завжди вдається. Корисніше просто зчитувати дані до самого кінця.

while (!fin.eof())

Розшифровується як end of file, ну і не забувайте про інверсію в обох випадках.

#include  <iostream>
#include  <iomanip>
#include  <vector>
#include  <time.h>
#include  <cstdlib>
#include  <conio.h>
#include  <cstring>
#include  <fstream>
#include  <cmath>
#include  <algorithm>
#include  <ctime>
using namespace std;

int main ()
{
   ifstream fin;
   fin.open("Text.txt");

   char str[50];


   if (!fin.is_open())
	cout << "File not found!" << endl;
   else {

	fin >> str;
	cout << str << endl;

	fin.getline(str, 50);
	fin.close();

	for (int i=0; i<strlen(str); i++)
		cout << str[i];
	cout << endl;
   }

   _getch();
   return  0;
}

Secondstep: drink some coffee. bye.


( 10 Проголосувало )

Схожі статті:
Новіші матеріали:
Старіші матеріали:

Коментарі
Добавити новий
Залишити коментар
Ім`я:
e-mail:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Введіть цей настирливий код
Русская редакция: www.freedom-ru.net & www.joobb.ru

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Ввійти



Підписка

Хто онлайн?

Немає
На даний момент 131 гостей на сайті

Український рейтинг
TOP.TOPUA.NET