Форум программистов, компьютерный форум CyberForum.ru

Как считать из файла по определенному принципу - C++

Восстановить пароль Регистрация
 
virtuos553
 Аватар для virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
01.06.2014, 12:21     Как считать из файла по определенному принципу #1
В файле информация хранится по определенному виду
-1
-1
80

........


-1
-1
444

Как считать, все что находится после -1 -1 80 и перед -1 -1 444?
Очень нужна ваша помощь, сам пытался разобраться со строками, пока не очень удачно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2014, 12:21     Как считать из файла по определенному принципу
Посмотрите здесь:

Как считать с текстового файла? C++
C++ Как считать массив из файла
C++ Как считать массив из файла
C++ Как считать вектор из файла?
C++ Как считать текст с файла ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
01.06.2014, 12:31     Как считать из файла по определенному принципу #2
Цитата Сообщение от virtuos553 Посмотреть сообщение
Очень нужна ваша помощь, сам пытался разобраться со строками, пока не очень удачно
Читаешь строки при помощи getline и сохраняешь результат в лист строк. Как только нашёл -1, -1, 80 запомнил индекс (при работе с std::list - iterator) следующей строки. Продолжаешь читать дальше и записывать. Если нашёл -1, -1, 444 - вернулся на строку перед этим паттерном и запомнил итератор. А дальше считываеть всё между итераторами. Метод топора. Можно сразу счиать весь файл и дальше парсать... Тут, как тебе больше нравится...
ExModE
2 / 2 / 2
Регистрация: 04.03.2011
Сообщений: 27
01.06.2014, 12:55     Как считать из файла по определенному принципу #3
Как то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <iostream>              
#include <fstream>               
#include <sstream> 
#include <string.h>
#pragma warning(disable: 4996)
using namespace std;
 
int main()
{
    ifstream in("input.txt");
    ostringstream out;
    out << in.rdbuf();
    char * fileinf = new char[out.str().length()];
    strcpy(fileinf, out.str().c_str());
    char * begin = strstr(fileinf, "-1\n-1\n80\n")+9;
    char * end = strstr(fileinf, "-1\n-1\n400\n");
    for (char * cur = begin; cur != end; cur++)
        printf("%c", *cur);
    _getch();
    return 0;
}
virtuos553
 Аватар для virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
01.06.2014, 13:48  [ТС]     Как считать из файла по определенному принципу #4
можете пояснить пожалуйста строчки кода?

Добавлено через 24 минуты
лист строк? это контейнер? а если строк слишком много? это же много памяти занимать будет

Добавлено через 43 секунды
нельзя ли как то построчно считывать из файла, до тех пор пока не найдется три строки такого вида
-1
-1
55
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
02.06.2014, 01:05     Как считать из файла по определенному принципу #5
Цитата Сообщение от virtuos553 Посмотреть сообщение
нельзя ли как то построчно считывать из файла, до тех пор пока не найдется три строки такого вида
можно...
Yandex
Объявления
02.06.2014, 01:05     Как считать из файла по определенному принципу
Ответ Создать тему
Опции темы

Текущее время: 06:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru