#include<iostream>
using namespace std;
int main()
{
string p;
int n,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>p;
cout<<p<<"\n";
}
return 0;
}
HIII ..
我想拿两根琴弦,然后像前一样一张一张地打印出来。但当我拿n = 2并输入字符串&#34;我想去&#34;
它给出了输出:
i
wanna
它并没有问我第二个字符串。它正在取字符串,直到它得到一个空格。我应该怎么做才能解决这个问题?
答案 0 :(得分:2)
您必须将语句中的迭代变量i的初始值更改为以下语句:
for(i=0;i<=n;i++)
答案 1 :(得分:2)
考虑使用std :: getline。
std::string name;
std::getline(std::cin, name);
上面的例子总结如下: std::cin input with spaces?
答案 2 :(得分:0)
您应该使用函数operator >>
而不是std::getline
。例如
#include <iostream>
#include <limits>
int main()
{
int n;
std::cin >> n;
std::cin.ignore( std::numeric_limits<std::streamsize>::max() );
// or simply std::cin.ignore();
for ( int i = 1; i <= n; i++ )
{
std::string p;
std::getline( std::cin, p );
std::cout << p << "\n";
}
return 0;
}