Вопрос такой. Незнаю как сделать так что бы можно было считать например вот это
файла data.txt
123
456
789
делаем
fread(s,9,file);
смотрю в дебагере
считавается только 123\n
как сделать так что бы читаем читаем выхватываем '\n' переходим на новую строчку продолжаем читать и так пока незакончаться данные
Чтение данных из файла
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 23
- Зарегистрирован: 23 фев 2005, 09:18
- Контактная информация:
С уважением Заикин Максим Викторович
Можно примерно так:
Код: Выделить всё
#include <stdio.h>
int main()
{
FILE *f = fopen("data.txt", "rt");
if (!f)
{
// Код сообщения об ошибке...
}
else
{
char szText[80];
while (!feof(f))
{
fgets(szText, sizeof(szText)-1, f);
// Код обработки текстовой строки...
}
fclose(f);
}
return 0;
}
-
- Сообщения: 23
- Зарегистрирован: 23 фев 2005, 09:18
- Контактная информация:
Да неплохой вариант . А еще какие могут быть варианты ?
С уважением Заикин Максим Викторович
Вариантов может быть сколько угодно. Всё зависит от условия конкретной задачи и от тех библиотек С/С++, которые ты собираешься использовать. Функции и классы для работы с файлами есть в любой известной среде программирования. А так же функции и классы для работы со строками и числами.
Ребят, а вы не пробовали файл открывать, как двоичный :
FILE *f = fopen("data.txt", "rb");
и считывать не 9 символов, а 15 или более (с учетом всех \n) ???
FILE *f = fopen("data.txt", "rb");
и считывать не 9 символов, а 15 или более (с учетом всех \n) ???
-
- Сообщения: 23
- Зарегистрирован: 23 фев 2005, 09:18
- Контактная информация:
Да. Все это конечно хорошие варианты. Но вот как сделать так читаем данные анализируем распихиваем по своим местам, как только выхватываем '\n' значит переходим в начало следующей строчки. Вернее самое для меня интересное это как перейти в начало следующей строки ?
С уважением Заикин Максим Викторович
Честно говоря, не совсем понятно, чего ты хочешь. Функция fgets() и так читает текстовый файл построчно, т.е. считывает данные до тех пор, пока не встретит символ новой строки или конец файла (если конечно длина строки не превышает указанный размер буфера). При каждом последующем вызове функция будет считывать данные из файла с новой строки и записывать их в указанный буфер. А уже данные в буфере анализируй сам как тебе нужно.
С WinMain'ом полностью согласен Читаешь весь файл в буфер (ну можно в ту же строку string или CString или что-то в этом роде) а потом анализируешь как тебе надо