注册 登录
编程论坛 C++教室

按是书上写的呀,报错,错在for那行。

m3440426898 发布于 2022-07-15 10:37, 1361 次点击
//按是书上写的呀,报错,错在for那行。
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str="qwertyuiop";
    for(auto a : str)
        cout<<a<<endl;
    return 0:
}
//error C2143: syntax error : missing ',' before ':
//error C2059: syntax error : ':'
//error C2143: syntax error : missing ';' before ':'
6 回复
#2
rjsp2022-07-15 11:39
return 0:
应该是
return 0;

如果还不行,说说你用的是什么编译器,编译器版本号,编译参数
#3
apull2022-07-15 14:21
for(auto a : str) 从c++11开始支持的,你的编译器支持这个版本不。
#4
op1232022-07-15 17:23
或者你换一下编译器(换成C++.11)
#5
m34404268982022-07-15 17:25
回复 2楼 rjsp
我是vc++6.0
#6
m34404268982022-07-15 17:33
回复 2楼 rjsp
还有这个bits/stdc++.h是不是也是c++11的呀,vc++6.0也编译不了。
#7
rjsp2022-07-15 18:48
我是vc++6.0
那你别想了,虽然「range-based for statement」是十多年前古老的C++11所制定,但你的vc++6.0是上个世纪的古董了。

还有这个bits/stdc++.h是不是也是c++11的呀
不是,它是gcc提供的一个头文件,包含了所有的C++头。
除了自己写着玩之外,正常人不应该使用它。
1