Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Denisqwwq
 Аватар для Denisqwwq
38 / 32 / 1
Регистрация: 01.06.2013
Сообщений: 117
#1

Правильное понимание - C++

05.07.2013, 22:31. Просмотров 374. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
ifstream file;
 
file.open(way1.c_str());
 
    getline(file, name);
    getline(file, fam);
    getline(file, otchestvo);
    file >> age;
    file.ignore();
    getline(file, info);
 
file.close();
Есть текстовый файл с содержанием:
Name
Fam
Otchestvo
28
Info

Тут мне важно понять принцип работы:
C++
1
file.ignore();
В моём понимание
C++
1
getline(file, )
будет считывать в переменную всю строку, включая
C++
1
"\n"
в конце каждой строки.
А вот при
C++
1
file >> age;
символ
C++
1
"\n"
считываться не будет.
Именно для этого приходится использовать
C++
1
file.ignore();
что бы в дальнейшем в
C++
1
getline(file, info);
попал не символ
C++
1
"\n"
а нужная информация.
Если я, что то не правильно понимаю, прошу меня исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 22:31     Правильное понимание
Посмотрите здесь:

3 программы на понимание C++
Правильное деление C++
C++ Понимание сокращенного кода
C++ Понимание для чего вообще нужны указатели?
Понимание адреса, ссылки и указателя C++
не до понимание в наследовании C++
Правильное применение функций C++
Понимание С++ C++
Не правильное вычисление C++
Правильное swprintf, правильное wprintf ? C++
Задачка на понимание указателей, преобразование типов C++
C++ Понимание препроцессора в языке программирования

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
05.07.2013, 22:40     Правильное понимание #2
Denisqwwq, всё правильно, если после age только перевод строки - ignore() "пропустит" только один символ.
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,903
Записей в блоге: 17
05.07.2013, 22:40     Правильное понимание #3
basic_istream::getline
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.07.2013, 02:50     Правильное понимание #4
Цитата Сообщение от Denisqwwq Посмотреть сообщение
В моём понимании
C++
1
getline(file, )
будет считывать в переменную всю строку, включая
C++
1
"\n"
Насчёт слова "включая". Нельзя сказать, что '\n' будет считан в переменную. В переменную '\n' не попадёт. Образно говоря, будет извлечён из потока, но в переменную не помещён. Если по другом: то что до '\n' - будет скопировано в переменную, файловый курсор займёт позцию за '\n'.
Yandex
Объявления
06.07.2013, 02:50     Правильное понимание
Ответ Создать тему
Опции темы

Текущее время: 01:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru