预期的声明错误(c错误)
这是我的密码预期的声明错误(c错误),c,C,这是我的密码 #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) {
#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);
}
}
为什么我会有这些错误请告诉我?
非常感谢。
sudhanshu您在这行末尾缺少一个分号:
void filecopy( FILE * a, FILE *b )
这应该是
void filecopy( FILE * a, FILE *b );
因为这是一个函数原型
此外,该行不合法C:
printf("no open".*argv);
这应该是这样的
printf("no open");
希望这有帮助 声明需要以分号结尾
void filecopy( FILE * a, FILE *b );
(这是主函数中的声明,而不是后面的函数定义。)缺少分号。
void filecopy( FILE * a, FILE *b ); /* Put semi-colon on the end! */
这一行:
printf("no open".*argv);
毫无意义。你想让它做什么?对不起,实际上它是(“没有打开”,*argv);即使您的意思是
printf(“无打开”、*argv)
您需要一个%s
(或其他一些%-格式化程序
)来证明传递第二个参数是正确的。
printf("no open".*argv);