С моим кодом что-то не так. Я набрал что-то и нажал кнопку ввода, увидев «первую строку» на экране, но я увидел пустую новую строку вместо «второй строки». Затем я снова набрал что-то и снова нажал. Тогда у меня не было шанса войти во вторую строку и получить выход напрямую. Я попробовал cin.ignore(), но это не сработало.с использованием двух getline (cin, s) в C++
# include <iostream>
# include <string>
void main() {
using namespace std;
string str1;
string str2;
cout << "the first string" << endl;
getline(cin,str1);
cout << "the second string" << endl;
getline(cin,str2);
cout << str1 << endl << str2 << endl;
}
Это не скомпилировало для меня, потому что 'void main()' должно быть 'int main()'. Как только я исправил это, он работал нормально. –
Вы получите предупреждение компилятора для большинства компиляторов для 'void main()', но реальная проблема, вероятно, будет заключаться в том, что вы не проверяете, чтобы входной поток все еще действовал или что вы не входите строка (то есть вы не нажимаете «ENTER» после вашего первого ввода). [Пример] (http://ideone.com/B9mHmW) –
Привет, Зак, я пробовал ваш код, но мне все равно пришлось ввести две строки для первого оператора getline. Но спасибо. – Kevin