Итак, я взял несколько целых чисел, а затем взял несколько предложений.
Этот код отлично работает:
#include<bits/stdc++.h>
using namespace std;
main(){
int c,b,n,i;string s;
cin>>n>>b>>c;
for(i=0;i<n;i++){
cin>>ws;
getline(cin,s,'\n');
cout<<s;
}
}
Пример:
3 3 3
This is weird
This is weirdDefinitely makes
Definitely makesNo sense
No sense
Однако, когда я пытаюсь опустить cin >> w внутри forloop, он не работает должным образом, например, этот сегмент кода,
#include<bits/stdc++.h>
using namespace std;
main(){
int c,b,n,i;string s;
cin>>n>>b>>c;
for(i=0;i<n;i++){
getline(cin,s,'\n');
cout<<s;
}
}
Пример:
3 3 3
This is weird
This is weirdDefinitely makes
Definitely makes
.. и заканчивается там вместо того, чтобы брать все три входа.
Это почему? cin >> ws извлекает все пробелы из входных данных, но не getline () тоже делает это? Так почему же он не работает должным образом, когда я опускаю cin >> ws в forloop?