Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файл не читается построчно 
:(
    Опции темы
worsvch
Дата 13.4.2012, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Есть файл неизвестного размера, из него нужно читая построчно выдрать то что находится в тэгах, вместо этого, читается только 1-ая строчка.
Подскажите, как быть?

Код

#include "stdafx.h"
#include <clocale>
#include <cstring>
#include <iostream>
#include <fstream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");

    bool tag = false;
    char buffer[2000];
    char buffer2[2000];
    unsigned int x = 0;
    unsigned int y = 0;
    
    ifstream file;
    file.open("c:\\test.xml",ios::in);

    while (!file.eof()) {
        file.getline(buffer,strlen(buffer),'\n');
        for (x = 0;x < strlen(buffer)+1;x++) {
            if (buffer[x] == '<') { buffer2[y] = buffer[x]; y++; tag = true; }
            else if (buffer[x] == '>') { buffer2[y] = buffer[x]; y++; tag = false; buffer2[y] = '\0'; }
            else if (tag == true) { buffer2[y] = buffer[x]; y++; }            
        }
        cout << buffer2 << endl;        
        memset(buffer2,0,sizeof(buffer2));
        memset(buffer,0,sizeof(buffer));
        y = 0;
    }

    file.close();

    return 0;
}



PM MAIL   Вверх
LOPUH
Дата 13.4.2012, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 15.2.2008
Где: Красноярск

Репутация: нет
Всего: 4



Осмелюсь предположить,что в конце строчки  у вас как то затесался EOF... Как вариант-может быть попробовать  в try..  cath, после того, как встретили EOF, прочитать следующую строчку?
PM MAIL   Вверх
Qu1nt
Дата 13.4.2012, 17:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: нет
Всего: 50



std::getline.
PM MAIL   Вверх
bsa
Дата 13.4.2012, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



worsvch, и вместо char buffer[...]; используй std::string buffer; Вместе с std::getline будет удобней использовать, так как не придется делать всякие memset(...)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.