Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2018, 20:14   #1
Natalia_Muse
Новичок
Джуниор
 
Регистрация: 01.05.2018
Сообщений: 1
Вопрос Работа с текстовым файлом последовательного доступа

Помогите, пожалуйста, решить задачу.

Создать в редакторе два текстовых файла, внести в них по 10 строк произвольного текста. Разработать программу, которая в тот из файлов, где больше строк, содержащих букву «f», добавляет три первых строки из того же файла.

Мой код. По-отдельности работает: отдельно считает буквы и отдельно добавляет три строки, если ввести условие. Например: count1=3, count2=5. Все вместе не хочет((
Подскажите, в чем может быть ошибка?
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int main()
{
	const int len = 81, strings = 10;
	const char ch = '\n';
	char mass[len][strings];
	char mass1[len][strings];
	int f;
	int count1 = 0, count2 = 0;

	ifstream fs("strings.txt", ios::in | ios::binary);
	ifstream fstoo("stringstoo.txt", ios::in | ios::binary);

		if (!fs)
		{
			cout << "Cannot open input file.\n";
			getch();
			return 1; //Если ошибка открытия файла, то завершаем программу
		}
		else
		{
			while ((f = fs.get()) != EOF) //Пока не дошли до конца файла, считываем символы
			{
				if (f == 'f') count1++; //Если это тот символ, то увеличиваем счетчик этих символов
			}
		}
	
	//////////////////////////////////////////////////////////////////////

		if (!fstoo)
		{
			cout << "Cannot open input file.\n";
			getch();
			return 1; //Если ошибка открытия файла, то завершаем программу
		}
		else
		{
			while ((f = fstoo.get()) != EOF) //Пока не дошли до конца файла, считываем символы
			{
				if (f == 'f') count2++; //Если это тот символ, то увеличиваем счетчик этих символов
			}
		}
	///////////////////////////////////////////////////////////////////////////


	for (int r = 0; r < 3; r++)
	{
		if (count1 > count2)
		{
			fs.getline(mass[r], len - 1, ch); //Считываем строки в массив	
			ofstream fs("strings.txt", ios_base::app); // создаём объект класса ofstream для записи и связываем его с файлом strings.txt
			fs << mass[r] << endl; // запись строк в файл
		}
		else
		{
			fstoo.getline(mass1[r], len - 1, ch); //Считываем строки в массив	
			ofstream fstoo("stringstoo.txt", ios_base::app); // создаём объект класса ofstream для записи и связываем его с файлом strings.txt
			fstoo << mass1[r] << endl; // запись строк в файл
		}
	}
	fs.close(); //Закрываем файл
	fstoo.close(); //Закрываем файл
}
Natalia_Muse вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Записать файл Ф последовательного доступа Н натуральных чисел. Получить в другом файле последовательного доступа... Turan257 Помощь студентам 0 21.05.2014 00:54
Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного доступа все компоненты Casillas1 Помощь студентам 1 16.05.2014 08:36
Работа с файлом последовательного доступа TotKogoNet Общие вопросы C/C++ 0 19.05.2011 19:00
Работа с файлами последовательного доступа СергейJ63 Паскаль, Turbo Pascal, PascalABC.NET 2 21.04.2011 13:20
Работа с текстовым файлом в Си Eovin Помощь студентам 0 19.05.2010 13:47