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

считывание строк и чисел. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задание было, написать БД по билетам вокзала http://www.cyberforum.ru/cpp-beginners/thread23899.html
Добрый день! Прошу совета! Задание было, написать БД по билетам вокзала. Не работает процедура покупки билета. Т.е. необходимо чтобы значение Freeplace в записи уменьшилось на 1. А потом посмотреть...
C++ не работает программа :( Уважаемые программисты помогите разобраться с проблемным запуском программы и другими вопросами. Сори если вопросы через чур, тупые, но я в этой деле новичок. Вообщем есть программа, сделана в среде... http://www.cyberforum.ru/cpp-beginners/thread23892.html
C++ Задана матрица
Помогите решить: Заданная матрица А(N,M). Найти среднее геометрическое парных положительных элементов.:wall:
массив чисел C++
Нужна помощь в решении Задан массив чисел А(N), где N - кратное трем. Упорядочить первую треть элементов массива за спадением, другу третину-за ростом, остальные элементы оставить на своих местах.
C++ Смена Компилятора http://www.cyberforum.ru/cpp-beginners/thread23864.html
Здравствуйте! :help: Начну с того, что программа работает в Visual Studio C++ 2008, но когда я пытаюсь ее переместить на другой компьютор, то у меня возникает вот это сообщение, и ничего не...
C++ Упорядочить N последних элементов (N<M) в порядке роста их значений. Привет всем! Никак не пойму как решить задачу: Задан массив чисел А(M). Упорядочить N последних элементов (N<M) в порядке роста их значений. :help: подробнее

Показать сообщение отдельно
lex4051
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 3

считывание строк и чисел. - C++

21.02.2009, 16:57. Просмотров 3645. Ответов 2
Метки (Все метки)

Доброго времени суток. Столкнулся с проблемой считывания чисел и строк.
Используются только <string> и <iostream>.
Необходимо вначале считать строку(имеется ввиду до переноса строки со всеми пробелами), а потом на следующей строке целое число, потом вывести строку и число через пробел.
Повторять эти действия пока строка не равна "exit".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;
 int main(int argc,char **argv) {
    string str;
    int N;
    while (str!="exit"){
        getline(cin, str);
        cin>>N;
        cout<<str<<' '<<N;
    }
    return 0;
}

Это код программы.
Когда вводишь первый раз строку, нажимаешь Enter, вводишь число, снова нажимаешь Enter, то выводится нормально.
Но если ввести второй раз, то после нажатия Enter программа выводит пустую строку, пробел и предыдущее число(которое вводили в первый раз).

После просмотра переменных оказалась, что строка str оказывается пустой.

Пожалуйста подскажите в чём проблема и что делать?
PS ОС Debian компилятор g++.

Добавлено через 30 минут 39 секунд
Нашёл банальное решение проблемы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h>
#include <iostream>
#include <string>
using namespace std;
 int main(int argc,char **argv) {
    string str = "";
    int N;
    bool f = false;
    while (str!="exit"){
    if (f) {getline(cin, str);} else {f = true;}
        getline(cin, str);
    cin>>N;
    cout<<str<<' '<<N<<endl;
    }
    return 0;
}
Вопрос. Можно ли по-нормальному сделать? Чтобы после считывания числа учитывался перенос строки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru