C ++多行输入

时间:2010-11-16 22:19:25

标签: c++ boost input char

所以我需要创建一个包含4行文本(EN_us)的char缓冲区,如

first line
line with some number like 5
line 3
empty line

从用户获取此类char缓冲区以及如何获取其长度的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用string(如果您愿意,可以使用循环),可以更容易地从标准输入中读取四行到单独的getline中,而不是获得这样的缓冲区:

然后总数据长度是各个string长度的总和。或者,使用此方法从用户检索数据,然后将它们连接成四行stringstream

组合代码示例:

#include <string>
#include <sstream>
#include <iostream>

std::string s[4];
size_t length(0);

std::ostringstream output;

for (size_t index = 0; index < 4; ++index)
{
    getline(std::cin, s[index]);
    length += s[index].length();

    output << s[index] << std::endl;
}

output.flush();
streamoff streamLength = output.tellp();