gpt4 book ai didi

c++ - 在 C++ 中没有临时变量从 istream 读取 1 行到字符串流?

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:29 24 4
gpt4 key购买 nike

是否可以在不使用 C++ 中的临时字符串变量的情况下从输入流中读取一行并将其传递给字符串流?

我目前是这样读取的(但我不喜欢临时变量line):

string line;
getline(in, line); // in is input stream
stringstream str;
str << line;

最佳答案

就像@Steve Townsend 上面说的,这可能不值得付出努力,但是如果你想这样做(并且你事先知道涉及的行数),你可以这样做:

#include <iostream>
#include <iterator>
#include <string>
#include <sstream>
#include <algorithm>

using namespace std;

template <typename _t, int _count>
struct ftor
{
ftor(istream& str) : _str(str), _c() {}

_t operator() ()
{
++_c;
if (_count > _c) return *(_str++); // need more
return *_str; // last one
}

istream_iterator<_t> _str;
int _c;
};

int main(void)
{
ostringstream sv;
generate_n(ostream_iterator<string>(sv, "\n"), 5, ftor<string, 5>(cin));

cout << sv.str();

return 0;
}

关于c++ - 在 C++ 中没有临时变量从 istream 读取 1 行到字符串流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com