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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
#1

Как работает f.getline(buf, MAX_LEN, '\n') ? - C++

03.06.2013, 10:36. Просмотров 1345. Ответов 8
Метки нет (Все метки)

Я так понимаю, что buf - куда мы считываем, MAX_LEN сколько считываем, а что значит '\n' (я знаю, что это символ переноса строки, просто зачем он в getline для чего нужен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 10:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как работает f.getline(buf, MAX_LEN, '\n') ? (C++):

Не работает cin.getline(buf, 20); - C++
Товарищи подскажите почему не работает cin.getline(buf, 20);? Проблема в том что я хочу ограничить ввод до 20 символов но оно не...

Что делает цикл "while(cin.getline(buf,l_buf))" ? - C++
не могу понять,что делает цикл:while(cin.getline(buf,l_buf))-это по сути проверка на ввод строки? cin.getline()-вводит строку ...

Как переписать строку из char buf[20] в wchar_t buf1[20]; ? - C++
Как переписать строку из char buf в wchar_t buf1; ?

Не работает getline() - C++
У меня есть класс, в котором в функции printPaste считывается строка пользователем. При вызове этой функции после ввода переменной position...

Не работает getline() - C++
Здравствуйте, есть такой код: bool Library::AddNewBook() { bool repeat = true; char answer; std::regex author(AuthorExp); ...

не работает getline - C++
Есть код (писал не я), но не могу понять, почему getline() игнорируется в строке 72. Сначала не работало в функции класса, потом решил...

8
Buckstabue
177 / 126 / 6
Регистрация: 12.01.2012
Сообщений: 624
03.06.2013, 10:48 #2
Это символ-идентификатор окончания линии, т.е. символ-разделитель линий
1
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
03.06.2013, 10:48 #3
\n будет считаться ограничителем строки, т.е. в buf
будет записана вся строка до \n (включая его).
Если символов окажется больше MAX_LEN,
то остальные пропадут.
1
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
03.06.2013, 10:49 #4
Wladius, неужели так сложно посмотреть справку?
http://www.cplusplus.com/reference/string/string/getline/
1
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
03.06.2013, 10:55  [ТС] #5
Цитата Сообщение от Tulosba Посмотреть сообщение
Wladius, неужели так сложно посмотреть справку?
http://www.cplusplus.com/reference/string/string/getline/
Я смотрел, но там по-английски и чтобы избежать недопонимания спросил, спасибо всем
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
03.06.2013, 10:57 #6
Если символов окажется больше MAX_LEN,
то может выбрасываться исключение "Buffer is too small"
(проверил для функции get_s() ).
1
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
03.06.2013, 11:24 #7
Цитата Сообщение от zss Посмотреть сообщение
проверил для функции get_s()
Что за get_s?
1
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
03.06.2013, 19:11 #8
Цитата Сообщение от Tulosba Посмотреть сообщение
Что за get_s?
Цитата из MSDN:
char *gets_s(
char *buffer,
size_t sizeInCharacters
);
wchar_t *_getws_s(
wchar_t *buffer,
size_t sizeInCharacters
);
template <size_t size>
char *gets_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws_s(
wchar_t (&buffer)[size]
); // C++ only
Parameters
[out] buffer
Storage location for input string.

[in] sizeInCharacters
The size of the buffer.

Return Value
Returns buffer if successful. A NULL pointer indicates an error or end-of-file condition. Use ferror or feof to determine which one has occurred.
1
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
03.06.2013, 19:18 #9
zss, так get_s это не gets_s В любом случае, функция нестандартная.
1
03.06.2013, 19:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 19:18
Привет! Вот еще темы с ответами:

Не работает getline - C++
Есть прога, которая считает предложения и выводит самое длинное.Есть главный кейс с меню. В первом пункте кейса есть гетлайн, но при выборе...

Не работает getline() - C++
Это часть из моего курсового, почему-то когда я запрашиваю заполнение структуры, то на то, что заполняется гетлайном программа просто...

Не работает getline(); - C++
Всем доброго дня:) Не работает кусочек кода: class Employee { private: string name;

не работает getline - C++
Подскажите, пожалуйста, почему не работает getline? Нужно ввести порядковый номер служащего и его имя с фамилией, но getline пропускает...


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

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

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