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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 21:02   #1
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию Занести текст из файла в строку С++

котелок вообще не варит.. в общем настало время работать с объемным текстом... Вот попытался
Код:
#include <iostream>
#include <fstream>

using namespace std;


void main(){
	ifstream in;
	in.open("Text.txt");
	char text[1024];
	int i(0);

	while (!in.eof())
		in.getline("Text.txt",1024);

	ofstream out;
	out.open("Text.txt");

	for (int j=0; j<i; j++)
		cout<< text[j];



}
а оно нагло вываливается... я честно не пойму как бы мне это сделать подскажите плиз =)
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 09.12.2009, 21:44   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

ну, во-первых:
Код:
while (!in.eof())
	in.getline("Text.txt",1024);
это что?
getline считывает строку и помещает её в переменную, а у тебя вместо переменной записана константа "Text.txt".

во-вторых
Код:
int i(0);
.....
for (int j=0; j<i; j++)
	cout<< text[j];
а это что? нажно для j = 0 до strlen(text).

в-третьих:
Код:
cout << text[j];
выводить то куда собираешься? в файл или на экран?

в-четвертых, пишешь в тот же файл из которого читал?
в-пятых, таким циклом
Код:
while (!in.eof())
	in.getline("Text.txt",1024);
ты считаешь только последнюю строку...

должно быть так:
Код:

#include <iostream>
#include <fstream>

using namespace std;


void main(){
	ifstream in;
	in.open("text.txt");
	char text[100][1024];
	int n = 0;

	while (!in.eof())
		in.getline(text[n++], 1024);

	ofstream out;
	out.open("text2.txt");

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < strlen(text[i]); j++)
			out << text[i][j];
		out << endl;
	}
}
Alex_FF вне форума Ответить с цитированием
Старый 10.12.2009, 05:41   #3
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

не я просто просмотреть хотел текст из файла)) блин как на немного свежее голову посмотришь - действительно косяков много и не без смешных XD

Есть вопрос:
Код:
in.getline(text[n++], 1024);
разве компайлер поймет что это проход по строкам, а не одномерный массив?

Вообще мне надо будет загрузить текст в оперативу и потом Рабином-Карпом искать подстроки... Вот решил что пора бы хотя бы фронт работы подготовить...

Чессссно сам поражаюсь вообще не соображаю... Вроде и не пью XD XD XD

Лан, мне сильно горит сделать это все не в матрице а в массиве текстовом, щас (или не щас не знаю...) попробую контактенацией сделать

Спс агромное)))
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 10.12.2009, 17:50   #4
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
Смех

Цитата:
Сообщение от Познающий Посмотреть сообщение
Есть вопрос:
Код:
in.getline(text[n++], 1024);
разве компайлер поймет что это проход по строкам, а не одномерный массив?
ну если у тебя описана строка как char s[100] и ты пишешь gets(s), он же понимает, что s - это массив а не просто переменная, значит и тут поймет. я проверял.
Alex_FF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Содержит ли текст заданную отдельную строку длинной не более 255 из символов 0 и 1 Curtis Помощь студентам 1 15.02.2009 20:08
Записать текст лесенкой(по одному слову в строке),вставляя пустую строку после каждого четверостишья klindk Паскаль, Turbo Pascal, PascalABC.NET 2 27.11.2008 14:34
З combobx выбрать строку и в параметр занести число vasylshvv Общие вопросы .NET 1 25.10.2008 04:47
Как извлечь текст из буфера в строку? Brother Win Api 3 13.11.2007 20:19