getline如何使用getline将一个字符串输出n次?
How do I use getline to output a string n times using getline?
我想将此代码与 getline
函数一起使用来输出一个字符串 n
次,但它只输出空行而不是一些字符串。为什么会这样,我该如何解决?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string str;
getline(cin, str);
for (int i = 0; i < n; i++) {
cout << str <<endl;
}
return 0;
}
当你输入一个数字给n赋值时,你是否在换行后输入字符串?如果是,则为 str 分配一个换行符而不是相应的字符串。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string str;
// getline(cin, str);//Filter newline character
// getline(cin, str);
getline(cin.ignore(1,'\n'), str);
for (int i = 0; i < n; i++) {
cout << str <<endl;
}
return 0;
}
您可能希望在输入数字后输入第一个 non-whitespace 文本。您可以使用 std::ws
跳过前导空格
#include <iostream>
#include <string>
int main()
{
int n;
std::cin >> n;
std::string str;
std::getline(std::cin >> std::ws, str);
for (int i = 0; i < n; i++) {
std::cout << str << std::endl;
}
return 0;
}
我想将此代码与 getline
函数一起使用来输出一个字符串 n
次,但它只输出空行而不是一些字符串。为什么会这样,我该如何解决?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string str;
getline(cin, str);
for (int i = 0; i < n; i++) {
cout << str <<endl;
}
return 0;
}
当你输入一个数字给n赋值时,你是否在换行后输入字符串?如果是,则为 str 分配一个换行符而不是相应的字符串。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string str;
// getline(cin, str);//Filter newline character
// getline(cin, str);
getline(cin.ignore(1,'\n'), str);
for (int i = 0; i < n; i++) {
cout << str <<endl;
}
return 0;
}
您可能希望在输入数字后输入第一个 non-whitespace 文本。您可以使用 std::ws
#include <iostream>
#include <string>
int main()
{
int n;
std::cin >> n;
std::string str;
std::getline(std::cin >> std::ws, str);
for (int i = 0; i < n; i++) {
std::cout << str << std::endl;
}
return 0;
}