C++ 获取多行
c++ get multiple lines
我需要一种方法来读取用户在控制台中粘贴的行。用户以这种方式粘贴它:
第一行:n - 除此行外的行数
第2 个 - 第 n 个:字符串对象
如果我用 cin 读取它,它会读取第一行,退出程序,下一行放在控制台输入中。使用scanf,我得到了类似的结果。
string s[100];
int N = 0;
scanf("%i", N);
for (int i = 0; i < N; i++)
{
scanf("%s", s);
}
如果您使用std::vector<std::string>
并使用std::getline
来提取行会更好:
std::vector<std::string> lines;
std::string line;
while (std::getline(std::cin >> std::ws, line))
{
if (!line.empty())
lines.push_back(line);
}
getline() 将为您解决问题。试试这个:
string lines[100];
int number = 0;
cin >> number;
for (int idx = 0; idx != number; ++idx)
{
getline(cin, lines[idx]);
}
请注意,您不能以这种方式阅读超过 100 行。如果要动态分配大小为 n 的行数组,可以使用 new 运算符。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- xmake总是报告:错误:无法获取cxx的程序,为什么
- 在c++中获取大文件的大小