我想处理输入流而不将其存储在内存中。目前,我正在做的是
Mage::log($modName);
Mage::log($this->_moduleConfig);
但是,像
String mem;
cin >> mem;
cout << mem << endl;
是不可能的。我得到了
cout << cin;
在Python 2.7中,我可以做到
error: ambiguous overload for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘std::ostream {aka std::basic_ostream<char>}’)
cin >> cout;
有没有办法在C / C ++中做到这一点?
答案 0 :(得分:3)
npm -g
因不同类型而重载。此外,operator >>
,read
等函数会接收缓冲区,其中应放置数据。
答案 1 :(得分:2)
您可以使用流迭代器执行此操作:
#include <iterator>
//...
std::cout << *std::istream_iterator<std::string>(std::cin) << '\n';
答案 2 :(得分:2)
cout << cin.rdbuf();
会这样做。
答案 3 :(得分:1)
我唯一可以想象的是这样的事情:
template< typename T >
struct In: public T
{
T& operator << ( istream &in )
{
in >> *this;
return *this;
}
};
cout << ( In<string>() << cin );
答案 4 :(得分:1)
对于单个字符,您可以尝试std::cout.put(std::cin.get())
。对于字符串,我认为没有使用临时变量就没有办法做到这一点。一般来说,你应该总是尝试对输入做一些事情,所以语言的设计是试图简化读取变量输入的方式,而不是直接获取输入和输出。
答案 5 :(得分:0)
0 + x
答案 6 :(得分:0)
cout << input();
如果需要,请调用功能输入。