【问题标题】:C++ multiple lines inputC++多行输入
【发布时间】:2011-05-11 02:55:16
【问题描述】:

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

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

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

【问题讨论】:

  • 这是作业吗?如果是的话,它很酷,但我们想知道。
  • @John,我不这么认为,最近有很多来自@Kabumbus 的问题。
  • 您一般是想阅读直到某种输入终止,还是只是这四个固定行?
  • 它的更多朋友和我学习 C++...在一些学校级别的项目中...一些简单的视频流客户端+服务器类型...

标签: c++ boost input char


【解决方案1】:

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

那么总数据长度就是各个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();

【讨论】:

  • 很好,但我会选择std::string lines[4]; for(...) std::getline(std::cin, lines[i]); 更容易改变,写起来更轻松!
  • @André,同意,我会改变这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多