基本的c程序不在Ubuntu中编译可靠
尊敬的问候,
这个基本的C程序不能在Ubuntu trusty 14.04.1 LTS中编译。 编译行是gcc array.c -std = c99(循环的最后一个选项)。 我应该使用吗? 有没有一个iostream的C(而不是C ++)?
#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];
^
谢谢
这不是一个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中没有流操作符
你包含了stdio.h
所以你必须使用fgets或类似的函数。 并用于输出printf系列