error C2059: syntax error : ')' 5

#include<stdio.h>#defineN20intsearch(structtraintra[N]);structtrain{intnum;intdate;in... #include<stdio.h>
#define N 20
int search(struct train tra[N]);
struct train
{ int num;
int date;
int from;
int to;
}tra;

void main()
{ search (struct train tra[1]);
}

int search(struct train tra[N]) // 读取车次中的内容
{

FILE *fp;
int i=0;
if((fp=fopen("e:\\train.txt","r"))==NULL)
{
printf("文件打开失败!\n");
return 0;
}
else
{
for(i=0;!feof(fp);i++)
fscanf(fp,"%d%d%s%s%d%f\n",&tra[i].num,&tra[i].date,&tra[i].from,&tra[i].to);
}
fclose(fp);
return i;
}

C:\Program Files\Microsoft Visual Studio\MyProjects\mm\mm.cpp(14) : error C2144: syntax error : missing ')' before type 'train'
C:\Program Files\Microsoft Visual Studio\MyProjects\mm\mm.cpp(14) : error C2660: 'search' : function does not take 0 parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\mm\mm.cpp(14) : error C2059: syntax error : ')'
执行 cl.exe 时出错.
展开
 我来答
乐VoV乐
2013-03-02 · 知道合伙人软件行家
乐VoV乐
知道合伙人软件行家
采纳数:289 获赞数:878
深圳市潮范文化传播有限公司软件工程师.

向TA提问 私信TA
展开全部
//就改了这上边一部分,程序可以运行了。
#include<stdio.h>
#define N 20
int search(struct train tra[N]);
struct train
{ int num;
int date;
int from;
int to;
}tra[N]; //这是个结构体数组,需要这样声明

void main()
{ search(tra); //传递的是数组首地址,直接这样写就好
}
hbhecs
2013-03-02 · 超过12用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:24.7万
展开全部
将声明语句int search(struct train tra[N]);放到结构体train之后即可。即:
#include<stdio.h>
#define N 20
struct train
{ int num;
int date;
int from;
int to;
}tra;
int search(struct train tra[N]);
...
追问
又出现了
C:\Program Files\Microsoft Visual Studio\MyProjects\mm\mm.cpp(14) : error C2146: syntax error : missing ';' before identifier 'tra'
C:\Program Files\Microsoft Visual Studio\MyProjects\mm\mm.cpp(14) : error C2064: term does not evaluate to a function
执行 cl.exe 时出错.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xoaxa
推荐于2018-05-09 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3448万
展开全部
函数参数问题。
声明语句 int search(struct train tra[N]);中,tra[N]只是一个struct tran变量,不是数组。
作为形参,要接收数组参数时,可以写作struct train tra[],或struct train *tra,二者没有区别。对应的实参使用数组名即可。
#include<stdio.h>
#define N 20

struct train {
int num;
int date;
int from;
int to;
}tra[N];

int search(struct train tra[]);

void main() {
search (struct train tra);
}

int search(struct train tra[]) { // 读取车次中的内容
FILE *fp;
int i;
if((fp = fopen("e:\\train.txt","r")) == NULL) {
printf("文件打开失败!\n");
return 0;
}
for(i = 0; !feof(fp); i++)
fscanf(fp,"%d%d%s%s%d%f\n",&tra[i].num,&tra[i].date,&tra[i].from,&tra[i].to);
fclose(fp);
return i;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式