【发布时间】:2014-07-12 16:45:08
【问题描述】:
在 C++ 中,您可以这样做:
for (int i = 0 ; i < 10 ; i++) {
/* ... */
}
然后变量i 只存在于for 语句的主体内。
是否存在使用 while 语句执行此操作的方法?
例如,做这样的事情会很好:
while ( (int c = fgetc(file)) != EOF ) {
/* ... */
}
显然这不起作用。但是存在一些语法技巧来有效地做到这一点(变量在while条件中使用并且仅在while语句的主体内可见)?
【问题讨论】:
-
用大括号括起来。
-
听起来你想要一个匿名块:stackoverflow.com/questions/581097/…
-
@shuttle87,这只是一个块。你不能有一个命名块,所以称它为匿名块是没有意义的。
-
为什么
while (int c = fgetc(handle) != EOF)不起作用? -
@BenjaminTrent,运算符优先级。
标签: c++