回答
的绝顶聪明的笨蛋回答:
int old; std::cin >> old;
可怕的答案:
int old, dummy = (std::cin >> old, 0);
正确答案:old
必须用声明定义可以通过之前以operator>>
作为参数。在变量声明中获得函数调用的唯一方法是将其放置在上面的初始化表达式中。接受的方式来声明一个变量,读投入它是你写的:
int old;
std::cin >> old;
不错,适当。 +1。 – 2013-02-16 20:25:35
为什么另一个变量? – 6502 2013-02-16 20:32:50
聪明的屁股答案,哈哈。谢谢,这是资料丰富的 – 2013-02-16 20:54:40
你可以...用
int old = (std::cin >> old, old);
但你真的不应该这样做
啊,好点!聪明。 – 2013-02-16 20:55:30
@ 6502为什么我们不应该做你说的? – Mohammasd 2017-07-19 07:25:03
使用功能:
int inputdata()
{
int data;
std::cin >> data;
return data;
}
然后:
int a=inputdata();
对于数据本身:
int inputdata()
{
static bool isDataDeclared=false;
if (isDataDeclared==true)
{
goto read_data;
}
else
{
isDataDeclared=true;
}
static int data=inputdata();
return data;
read_data:
std::cin >> data;
return data;
}
但是,现在呢也是用'data'来做! – 2013-02-16 20:56:05
@JosephMansfield我认为,在原始问题中,有时您只想将变量初始化为用户输入值,而不是系统默认值,未定义值或您自己拒绝定义的值。尽管为了数据的目的,我觉得没有必要对它做“相同”操作,因为它只存在于函数的本地范围内,用于所有三行执行时间,并且可能在标记函数时作为内联,它甚至可能完全被优化。 'int old = inputdata();'可能最终等同于'int old; std :: cin >> old;'如果发生这种情况。 – thegreatjedi 2015-12-22 07:46:07
也许不是int
,但对于自己的类型:
class MyType {
int value;
public:
MyType(istream& is) {
is >> *this;
}
friend istream& operator>>(istream& is, MyType& object);
};
istream& operator>>(istream& is, MyType& object) {
return is >> object.value;
}
然后你可以用istream
传递给构造函数创建类型:
int main() {
istringstream iss("42");
MyType object(iss);
}
- 1. 是否可以在声明后初始化最终变量..?
- 2. 我们可以声明和初始化一个成员变量在同一类
- 3. 变量初始化并声明后可能尚未初始化
- 4. 初始化静态final变量声明与初始化在Application.OnCreate()
- 5. scala - 未初始化的变量声明
- 6. 联盟是否可以在声明中初始化?
- 7. C++:变量声明初始化顺序
- 8. 声明和初始化全局变量
- 9. Maya MEL变量声明和初始化
- 10. 声明和初始化结构变量
- 11. 是否可以用lambda初始化静态变量?
- 12. 是否可以声明一个全局变量并在函数中初始化它? c#
- 13. 在全局范围声明的thread_local变量是否已初始化?
- 14. 初始化变量,同时声明函数
- 15. 初始化在声明
- 16. 是否可以使用&&并在同一行上设置变量?
- 17. 在同一行上初始化两个变量
- 18. 初始化变量的初始化是否正确?
- 19. 是否可以在Kotlin的while条件体中初始化一个变量?
- 20. 是否可以使用search.luceneSearch与以前声明的变量?
- 21. 指针声明,但未初始化的变量用C
- 22. 使用'simpledialog'时声明的变量未初始化
- 23. 初始化后可以初始化静态变量吗?
- 24. 在一行中初始化变量?
- 25. 是否可以强制JavaScript在使用前声明变量?
- 26. C#是否自动初始化变量
- 27. PHP初始化变量在__construct()对声明
- 28. 在构造函数或声明中初始化变量
- 29. 在XLST中声明和初始化变量
- 30. Vb.net声明和初始化
也许'int old; std :: cin >> old;'? – 2013-02-16 20:23:00
不是,仍然是重复的。 http://stackoverflow.com/questions/12279601/are-there-any-tricks-to-use-stdcin-to-initialize-a-const-variable – djechlin 2013-02-18 00:30:43
我重新命名这个古老和尴尬的问题,因为它已经得到最近很受关注。 – 2017-04-22 01:29:03