恭敬的问候,
这个基本的C程序不能在Ubuntu trusty 14.04.1 LTS中编译。 编译行是gcc array.c -std = c99(循环的最后一个选项)。我应该用吗?是否有c(而不是c ++)的iostream?
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(void)
{
int array[8];
for(int x=0;x<8;x++)
{
std::cin>>array[x];
}
for(int x=0;x<8;x++)
{
std::cout<<array[x];
}
return 0;
}
我收到的错误消息是
array.c:3:3: error: unknown type name ‘using’
using namespace std;
^
array.c:3:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘std’
using namespace std;
^
array.c: In function ‘main’:
array.c:9:9: error: expected expression before ‘:’ token
std::cin>>array[x];
^
array.c:13:5: error: duplicate label ‘std’
std::cout<<array[x];
^
array.c:9:5: note: previous definition of ‘std’ was here
std::cin>>array[x];
^
array.c:13:9: error: expected expression before ‘:’ token
std::cout<<array[x];
^
由于
答案 0 :(得分:3)
这不是C程序,它是一个C ++程序。将您的文件重命名为array.cpp
和/或使用g++
代替gcc
,不,在C中没有iostream
这样的内容。
您的计划的第一个非C部分是
using namespace std;
C中没有namespace
。
第二部分是
std:cin>>array[x];
它有两个问题,首先是为什么using namespace std;
然后std::cin
如果你在C ++中使用using namespace
它意味着它将在省略时在该命名空间中查找,其次,这也是C ++特有的。 C中没有stream operator。