Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Ваю
18 / 18 / 9
Регистрация: 21.04.2015
Сообщений: 541
#1

Как узнать, был ли найден в строке, читаемой с помощью функции std::getline(), символ \n ? - C++

20.11.2016, 23:54. Просмотров 207. Ответов 5
Метки нет (Все метки)

Как узнать результат работы в std::getline(SS, Res, '\n'); был найден в потоке первод строки или нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2016, 23:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как узнать, был ли найден в строке, читаемой с помощью функции std::getline(), символ \n ? (C++):

Как узнать тип вводимых данных с помощью перегрузки функции?
Такое условие задачки: Пользователь вводит данные, а ему программа говорит,...

Почему при использовании getline( std::cin, str ) строка считывается не так, как ожидается?
Цель программы: При вводе строки, подсчитывает количество гласных букв....

Обменять символ 'a' на символ 'т' в заданной строке. Оформить в виде функции
Обменять символ 'a' на символ 'т' в заданной строке. Оформить в виде функции

Getline: идентификатор не найден
Здравствуйте, помогите исправить ошибку! Пишут, "getline: идентификатор не...

Как с помощью getline считать двухбайтовые символы?
В общем надо считать строку из файла. Если однобайтовая - всё ок. Как только...

Объясните разницу между "cin.getline" и "std::getline"
string a; cin.getline(a); getline(cin, a);в чем разница между...

5
SamBars
15 / 15 / 12
Регистрация: 06.10.2015
Сообщений: 94
21.11.2016, 00:27 #2
на держи код
C++
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
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    ifstream inFile;
    string inFileString;
    inFile.open("test.txt");
 
    int temp = 0;
 
    while (!inFile.eof())
    {
        while (getline(inFile, inFileString, '\n'))
        {
            temp++;
        }
    }
    
    cout << temp << endl;
    inFile.close();
}
Вот скрины
0
Миниатюры
Как узнать, был ли найден в строке, читаемой с помощью функции std::getline(), символ \n ?   Как узнать, был ли найден в строке, читаемой с помощью функции std::getline(), символ \n ?  
Ваю
18 / 18 / 9
Регистрация: 21.04.2015
Сообщений: 541
21.11.2016, 00:48  [ТС] #3
это всё понятно, я задал вопрос так, поскольку у меня файл не читается сразу целиком, а через поток по 4кб за раз, поэтому я не могу определять конец строки так, поскольку кусок, кратный 4кб совсем необязательно будет заканчиваться на переводе строк, а на середине строки - запросто, обрабатываь кусок строки как целую - никак нельзя...
0
SamBars
15 / 15 / 12
Регистрация: 06.10.2015
Сообщений: 94
21.11.2016, 00:55 #4
Ваю, т.е. у тебя
C++
1
std::getline(SS, Res, '\n')
читает максимум 4кб не смотря на то что строка не заканчивается \n -ом?
0
Ваю
18 / 18 / 9
Регистрация: 21.04.2015
Сообщений: 541
21.11.2016, 07:09  [ТС] #5
SamBars, да, у меня ограничение в функции чтения стоит, она читает кусками по 4кб, а потом отдаёт этот кусок дальше, где всё парсится по getline, я всё сделал, но не знаю как затереть stringstream, мне надо чтоб он был пустой на каждом новом цикле, как если бы его только что создали, ss.flush(); не помогает... выделять для него память динамически тоже не получилось у меня

Добавлено через 5 минут
ну и на вашем скрине переводов строк 4, а не 5, в конце файла перевода строки нет, счётчик считает строки, а не переводы, их вот 5
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
21.11.2016, 07:55 #6
Цитата Сообщение от Ваю Посмотреть сообщение
не знаю как затереть stringstream
C++
1
2
ss.str("");
ss.clear();
1
21.11.2016, 07:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 07:55
Привет! Вот еще темы с решениями:

Ругается на getline , пишет идентификатор не найден
Ругается на getline , пишет идентификатор не найден #include &quot;stdafx.h&quot;...

Не работает std::getline
привет, у меня в этом коде почему-то не работает getline, почему? #include...

std::getline + Unicode
Как заставить getline работать с Unicode?

Error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::
Здравствуйте! Сразу попрошу прощения за тупой вопрос. Почему при перегрузке...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru