Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ваю
18 / 18 / 1
Регистрация: 21.04.2015
Сообщений: 528
#1

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

20.11.2016, 23:54. Просмотров 185. Ответов 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++):

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

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

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

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

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

Ругается на getline , пишет идентификатор не найден - C++
Ругается на getline , пишет идентификатор не найден #include "stdafx.h" #include <iostream> #include <fstream> #include <cstring> ...

5
SamBars
14 / 14 / 8
Регистрация: 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 / 1
Регистрация: 21.04.2015
Сообщений: 528
21.11.2016, 00:48  [ТС] #3
это всё понятно, я задал вопрос так, поскольку у меня файл не читается сразу целиком, а через поток по 4кб за раз, поэтому я не могу определять конец строки так, поскольку кусок, кратный 4кб совсем необязательно будет заканчиваться на переводе строк, а на середине строки - запросто, обрабатываь кусок строки как целую - никак нельзя...
0
SamBars
14 / 14 / 8
Регистрация: 06.10.2015
Сообщений: 94
21.11.2016, 00:55 #4
Ваю, т.е. у тебя
C++
1
std::getline(SS, Res, '\n')
читает максимум 4кб не смотря на то что строка не заканчивается \n -ом?
0
Ваю
18 / 18 / 1
Регистрация: 21.04.2015
Сообщений: 528
21.11.2016, 07:09  [ТС] #5
SamBars, да, у меня ограничение в функции чтения стоит, она читает кусками по 4кб, а потом отдаёт этот кусок дальше, где всё парсится по getline, я всё сделал, но не знаю как затереть stringstream, мне надо чтоб он был пустой на каждом новом цикле, как если бы его только что создали, ss.flush(); не помогает... выделять для него память динамически тоже не получилось у меня

Добавлено через 5 минут
ну и на вашем скрине переводов строк 4, а не 5, в конце файла перевода строки нет, счётчик считает строки, а не переводы, их вот 5
0
GbaLog-
Любитель чаепитий
3078 / 1417 / 342
Регистрация: 24.08.2014
Сообщений: 5,040
Записей в блоге: 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
Привет! Вот еще темы с ответами:

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

Error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std:: - C++
Здравствуйте! Сразу попрошу прощения за тупой вопрос. Почему при перегрузке operator &lt;&lt; код template&lt;class T&gt; ostream &amp;operator &lt;&lt;...

Std::getline и длинные строки - C++
Если ввести большую строку с паролем то программа все время выводит Enter password и зависает. Как можно это исправить? #include...

Работа со строками. Error C3861: getline: идентификатор не найден - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) { ...


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

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

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