Czytając kilka liczb całkowitych następnie wiersz tekstu w C ++

głosy
1

Czytam wejście w programie C ++. Po pierwsze kilka liczb całkowitych, a następnie ciąg. Kiedy próbuję czytać ciąg z getline(cin,stringname);, to nie czyta wiersz, który użytkownik wpisze: zamiast, dostaję pustą linię, od kiedy użytkownik nacisnął Enterpo wpisaniu liczby całkowite.

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

W jaki sposób można wyczyścić cin( cin.clear()nie działa) tak, że ciąg nie wypełni się za pomocą klawisza „ENTER”?

Jest to normalne wejście odbioru, nic specjalnego w górnej części kodu, miałem problem takiego ale zapomniałem rozwiązanie muszę je wyczyścić cinjakoś tak łańcuch nie dostać wypełnione klawiszem „Enter”.

Utwórz 02/10/2008 o 20:07
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Myślę, że cin z wskazówki nie czyta nową linię przed zdaniu. cin pomija wiodącym spacje i przestaje czytać numer gdy napotka bez cyfr, w tym spacji.

Więc:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

może pracować dla Ciebie

Odpowiedział 02/10/2008 o 20:22
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more