0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 54
1

Считывание следующей строки в файле

10.02.2018, 15:04. Показов 917. Ответов 2
Метки нет (Все метки)

Здравствуйте уважаемые программисты!
Столкнулся с пропуском комментариев в текстовом файле. К примеру file.txt выглядит следующем образом:

# comment
# comment
text 512 1024
# comment
end
Требуется загружать незакомментированные строки, а именно текст и два числа до слова "end". Проблема в том, что решетку то программа обрабатывает как комментарий, но после пробела лезет загружать сам текст комментария как новую переменную, что естественно не приемлемо.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    string a;
    int q, w;
    ifstream F;
    F.open("file.txt");
 
    while(true){
        F >> a;
        if (a == "end") break;
        if (a[0] == '#') continue;
        
        F >> q;
        F >> w;
 
        cout << a << "  " << q << "  " << w << endl;
    }
    F.close();
Теперь вопрос: как заставить программу переходить на следующую строку текстового файла при виде символа '#'?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2018, 15:04
Ответы с готовыми решениями:

Скопировать второе слово каждой строки в начало следующей строки
Привет, прошу помощи! Заранее спасибо! Индивидуальное задание: Скопировать второе слово каждой...

Запись и считывание с позиции в файле!
Нужно лабу накатать, ищу информацию по этой теме! Пока не очень успешно! Если кто может подкиньте...

Считывание координат в бинарном файле
Суть задачи такова: необходимо программно записать в бинарный файл координаты точек в пространстве,...

Поиск, считывание и замена символов в файле [C++]
И снова здраствуйте! Нужно, чтобы программа находила в файле число от 0 до 5120, а после считывала...

2
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
10.02.2018, 15:06 2
X-TRACK, можно считать строку текстового файла при виде символа '#' в отдельную переменную которая тебе не нужна.
1
1386 / 1016 / 323
Регистрация: 28.07.2012
Сообщений: 2,804
10.02.2018, 15:16 3
Цитата Сообщение от X-TRACK Посмотреть сообщение
F >> a;
Так произойдет чтение одного слова, разделителем является любой пробельный символ.
Чтобы прочитать строку целиком, используй std::getline(F, a);.

Добавлено через 3 минуты
Ну или так:
C++
1
2
3
4
5
F >> a;
if (a[0] == '#') {
    F.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    continue;
}
чтобы выкинуть из потока всё, что находится после символа комментария вплоть до начала следующей строки.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2018, 15:16
Помогаю со студенческими работами здесь

Как в потоковом вводе перейти на чтение следующей строки?
Подскажите пожалуйста, как в потоковом вводе из текстового файла перейти на чтение следующей...

Как зафиксировать позицию в файле, а потом продолжить с неё считывание
Всем доброй ночи (или доброго утра). Возник вопрос о том, как зафиксировать позицию в файле, а...

Подчеркнуть все входящие в файл заглавные буквы минусами в соответствующих позициях следующей строки
В файле записал 4 строки I made a choice that I regret Now what I see is what I get Its too late...

Как сделать, чтобы при вводе в консоли <Enter> не переводил курсор на начало следующей строки?
Есть некий ввод символов, организованный через cin.get(char &amp;), или через cin.get(char &amp;, int), или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru