[问题] for循环中宣告计次变量

楼主: xxxx5801   2015-12-22 01:07:08
先贴程式码:
http://pastie.org/10645898
//以下为示意code
...
int a=5;
...
for(int i=1;i<=a;i++){
cout << i;
if(i != a)
cout << ",";
}
...
如题,循环中的if是为了让最后一个不要有","
整个程式中像这样的循环一共有三个,但是很奇怪的是前两个都可以正常跑
第三个就有错误
编译的错误信息如下:
name lookup of 'i' changed for new ISO 'for' scoping
using obsolete binding at 'i'
上网google后的结果大多是说计次变量需要宣告,可是我有宣告呀
没道理第三个不能跑,求解
作者: e8218268 (omega)   2015-12-22 01:21:00
for loop看起来没有用大括号包起来
作者: LPH66 (-6.2598534e+18f)   2015-12-22 01:29:00
楼上正解, 于是 if(i!=a) 的 i 在循环外面新标准规定 for(int i...) 的 i 只在 for 里有效(讲新标准是指错误讯息里的 new ISO 'for' scoping)
作者: overhead (overhead)   2015-12-22 02:23:00
你要不要整段贴上来? 你文中说没问题 可是现在就是有问题 这种情况只能直接看code中有没有你没注意到的
作者: Jruffian   2015-12-22 02:59:00
第三个 for 循环 少一个左括号 {

Links booklink

Contact Us: admin [ a t ] ucptt.com