Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как читать текстовый файл? / 8 сообщений из 8, страница 1 из 1
20.01.2004, 06:17
    #32381087
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
Простите за ламерский вопрос, но у меня вот какя проблема:
есть текстовый файл input.txt, в котором несколько строк. Надо этот файл читать по строкам и каждую строку обрабатывать. Строку надо считывать в переменную, напимер, a. (char *a или char a[255]). Функцию для обработки сторочки a я уже сделал и она прекрасно работает, когда я эту строчку сам задаю. проблема в том, что строки разной длины могут быть, а все функции, которые я знаю, они требуют количество символов, которое надо считать.

Короче говоря, вопрос такой: как текстовый файл читать по строкам?
...
Рейтинг: 0 / 0
20.01.2004, 08:36
    #32381128
Shkurenko Alexander
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
Использовать:
std::basic_string

ручками искать конец строки и динамически выделять под нее память
...
Рейтинг: 0 / 0
20.01.2004, 09:42
    #32381198
Как читать текстовый файл?
Один из множества вариантов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include <stdio.h>
FILE   *In;
char    a[побольше];
In = fopen(имя_файла,  "r" );
if (In != NULL) {
        while (!feof(In)) {
               fgets(а, sizeof(a)- 1 , In);
               .....
        } // while
        fclose(In);
} // if
...
Рейтинг: 0 / 0
20.01.2004, 10:24
    #32381262
zssd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
ifstream::getline()
...
Рейтинг: 0 / 0
20.01.2004, 10:30
    #32381272
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
Dr. Yes

Если вы пишите на C++ - то это делается так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <string>
#include <fstream>
#include <iostream>
#include <algorithm>

using namespace std;

void string_function(string file_string);

void _tmain(void)
{
	ifstream my_file;

	my_file.open( "file.txt" );

	while (!my_file.eof())
	{
		string str;
		getline(my_file,str);
		string_function(str);
	}

}

void string_function(string file_string)
{
	static int line_no =  0 ;
	cout << ++line_no <<  ": "  << file_string << endl;
}


Ну а если нужен C - то так как предложил Cлучайный прохожий
...
Рейтинг: 0 / 0
20.01.2004, 10:43
    #32381301
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
Спасибо Вам всем огромное. Вы мне ОЧЕНЬ помогли.
...
Рейтинг: 0 / 0
20.01.2004, 16:10
    #32381933
Shkurenko Alexander
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
2 funikovyuri
а не накладно ли передавать строку по значению, то же самое и объявление в теле цикла, да и ещё в стандарте функция main имеет всего две сигнатуры
int main()
int main(int argc, char* argv[])
а так в принципе ничего.
...
Рейтинг: 0 / 0
20.01.2004, 16:26
    #32381970
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать текстовый файл?
Shkurenko Alexander

Дорогой Александр - у нас что конкурс?

Так лучше
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
#include <string>
#include <fstream>
#include <iostream>
#include <algorithm>

using namespace std;

void string_function(const string &file_string);

// tmain - это результат работы console app wizard в VC7
// там было int _tmain(int argc, _TCHAR* argv[]) - т.е. unicode-версия argv
void main(void)
{
	ifstream my_file;

	my_file.open( "file.txt" );

	string str;                 //хотя  95 % что мой VC7 об этом сам позаботился ;)
	while (!my_file.eof())
	{
		getline(my_file,str);
		string_function(str);
	}

}

void string_function(const string &file_string)
{
	static int line_no =  0 ;
	cout << ++line_no <<  ": "  << file_string << endl;
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как читать текстовый файл? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]