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

Стандартный входной поток - C++

Восстановить пароль Регистрация
 
Forsard
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 11
10.09.2013, 17:43     Стандартный входной поток #1
Добрый день, помогите разобраться. Хочу написать функцию, которая читает из входного потока некое количество данных вида "КЛЮЧ<табуляция>ЗНАЧЕНИЕ" и кладет ключи и значения в вектор структур.
Поправьте пожалуйста, чую много косяков.
C++
1
2
3
4
5
6
7
8
9
vector <Data> read_list (vector <Data> d)
{
    Data temp = (Data)malloc(sizeof(data));
    while (cin»temp->key && cin»temp->value)
    {
        d.push_back(temp);
    }
    return d;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.09.2013, 17:56     Стандартный входной поток #2
C++
1
2
3
4
5
6
7
8
9
10
vector <Data> read_list ()
{
    Data temp;
    vector <Data> d
    
    while (cin>> temp->key && cin >> temp->value)
        d.push_back(temp);
 
    return d;
}
Forsard
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 11
10.09.2013, 18:01  [ТС]     Стандартный входной поток #3
Цитата Сообщение от Jupiter Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
vector <Data> read_list ()
{
    Data temp;
    vector <Data> d
    
    while (cin>> temp->key && cin >> temp->value)
        d.push_back(temp);
 
    return d;
}
не то имел в виду... Как остановить цикл прочтения входного потока? Когда данные с входного потока закончатся, надо дать понять программе, что больше их не будет. У меня программа падает когда я ввожу что-либо кроме заданной схемы.
Проще говоря, как остановить прочтение входного потока, не вводя никаких дополнительных символов?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.09.2013, 18:05     Стандартный входной поток #4
под виндовс Ctrl + Z
Forsard
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 11
10.09.2013, 18:12  [ТС]     Стандартный входной поток #5
Цитата Сообщение от Jupiter Посмотреть сообщение
под виндовс Ctrl + Z
а программно как закончить прочтение?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.09.2013, 18:17     Стандартный входной поток #6
Цитата Сообщение от Forsard Посмотреть сообщение
а программно как закончить прочтение?
взять и закончить, что за вопрос? сформулируй что тебе надо наконец
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
10.09.2013, 18:22     Стандартный входной поток #7
Цитата Сообщение от Forsard Посмотреть сообщение
не вводя никаких дополнительных символов?
а как программа узнает что пора кончать с этим?
Forsard
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 11
10.09.2013, 18:23  [ТС]     Стандартный входной поток #8
Цитата Сообщение от Jupiter Посмотреть сообщение
взять и закончить, что за вопрос? сформулируй что тебе надо наконец
Свою работу отправляю на так называемый "Checker", который подает на вход несколько строчек данных в виде "Ключ-табуляция-Значение". Программе надо прочитать этот поток, забить данные в вектор структур и не вылететь при этом. Checker не будет жать Ctrl+z, он просто подаст несколько строчек и все.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
10.09.2013, 18:26     Стандартный входной поток #9
Цитата Сообщение от Forsard Посмотреть сообщение
подаст несколько строчек и все.
пусть тогда чекер подаст количество этих команд , тогда цикл будет конечным
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 18:27     Стандартный входной поток
Еще ссылки по теме:

Стандартный поток ввода, конец файла C++
C++ Как сделать отступы или , чтобы входной поток(ввода) отдельно от вывода
C++ Стандартный поток ввода

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

Или воспользуйтесь поиском по форуму:
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
10.09.2013, 18:27     Стандартный входной поток #10
Передастся EOF (то же, что и Ctrl+Z)
Yandex
Объявления
10.09.2013, 18:27     Стандартный входной поток
Ответ Создать тему
Опции темы

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