这是一个好奇心很强的问题,但是否真的可以将通过std::cin
的任何内容作为参数传递给函数,而不定义一个临时变量来读取输入?
不使用额外的临时变量:
#include <iostream>
using namespace std;
string time; // extra define temporary variable for input
// now 2 lines follow with separate operations
cin >> time; // 1) input to "time"
in_time = get_minutes (time); // 2) put "time" to function as parameter
cin >> time; // another extra line
wake_up = get_minutes (time);
cin >> time; // and another other extra line ....
opens = get_minutes (time);
我想直接在函数中使用std::cin
参数:
#include <iostream>
using namespace std;
in_time = get_minutes (<use of cin here>);
wake_up = get_minutes (<use of cin here>);
opens = get_minutes (<use of cin here>);
这可能吗?
4条答案
按热度按时间pb3s4cty1#
您可以轻松地定义一个 Package 函数来实现这一点。
任何像样的编译器都会使用NRVO来消除副本。
可以这样使用
但是请确保不要在一条语句中多次使用它。如果您这样做,则流操作的顺序是未指定的。
两个整数的顺序可以是任意的。
xmjla07d2#
cin
只是一个流,它没有任何魔力。你可以使用其他流方法来做任何你想做的事情。checkout http://www.cplusplus.com/reference/iostream/
rt4zxlrg3#
你的问题的答案是否定的。为了通过流输入一些东西,你将不得不“浪费”一个变量。你不能在没有中间变量的情况下将输入数据直接传递给函数。
3zwjbxry4#
确定:
不过,这可能并不比使用变量 * 简单 *,而且如果流无法提供
T
,这是未定义的行为。