这是我的代码
#include<stdio.h>
int main( int argc ,char *argv[] )
{
FILE *fp;
void filecopy( FILE * a, FILE *b )
if (argc == 1)
{
filecopy(stdin,stdout);
}
else
{
while(--argc > 0)
{
if ((fp = fopen(*++argv,"r")) == NULL)
{
printf("no open".*argv);
}
else
{
filecopy(fp,stdout);
fclose(fp);
}
}
}
return 0;
}
void filecopy ( FILE *ifp ,FILE *ofp )
{
int c;
while ( (c = getc(ifp)) != EOF)
{
putc(c , ofp);
}
}
这些是我的错误:
con.c: In function 'filecopy':
con.c:8: error: expected declaration specifiers before 'if'
con.c:13: error: expected declaration specifiers before 'else'
con.c:29: error: expected declaration specifiers before 'return'
con.c:30: error: expected declaration specifiers before '}' token
con.c:33: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
con.c:39: error: expected '{' at end of input
con.c: In function 'main':
con.c:39: error: expected declaration or statement at end of input
为什么我收到这些错误请告诉我? 谢谢 sudhanshu
答案 0 :(得分:7)
你在这行末尾错过了一个分号:
void filecopy( FILE * a, FILE *b )
这应该是
void filecopy( FILE * a, FILE *b );
因为这是一个函数原型。
此外,此行不合法C:
printf("no open".*argv);
这可能就像是
printf("no open");
希望这有帮助!
答案 1 :(得分:2)
声明需要以分号结尾
void filecopy( FILE * a, FILE *b );
(这是主函数中的声明,而不是稍后出现的函数定义。)
答案 2 :(得分:2)
您缺少分号。
void filecopy( FILE * a, FILE *b ); /* Put semi-colon on the end! */
<小时/> 这一行:
printf("no open".*argv);
没有任何意义。你的意思是什么?