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 时出错. 展开
#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 时出错. 展开
3个回答
展开全部
将声明语句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]);
...
#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 时出错.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数参数问题。
声明语句 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;
}
声明语句 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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询