C函数调用错误显示函数使用txt文件



当我调用显示函数时,它不会在程序中调用,当我在主函数中使用它而不在函数中使用时,它可以完美地工作。

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main() 
{
int d;
int choose;
int display();
printf("enter 1 to display and 2 to quitn");
switch(choose)
{
case 1:
display();
break;

}
scanf("%s",choose);
int display();
system("cls");
}
int display()
{
char fname[20], str[500];
FILE *fp;
printf("Enter the Name of File: ");
gets(fname);
fp = fopen(fname, "r");
if(fp==NULL)
printf("Error Occurred while Opening the File!");
else
{
fscanf(fp, "%[^]", str);
printf("nContent of File is:nn");
printf("%s", str);
}
fclose(fp);
getch();
return 0; 
}

你知道错误是什么吗?

main()中,您不是在调用display()函数,而是在重新声明(int display()(它。声明一个函数和调用它是有区别的

功能声明:int display()

函数调用:display()

声明只是简单地告诉程序一个函数的存在。如果您想调用一个函数,那么就进行一个函数调用。

编辑:你的问题框架不好,很难理解。我想你是在问-

为什么switch语句中的函数调用没有执行?

有两个原因-

1.首先,您没有为switch中使用的choose变量分配任何值(@Nicholas也指出了这一点(。

2、scanf(...)语句放置错误,语法错误。阅读此处

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main() 
{
int d;
int choose;
int display();
printf("enter 1 to display and 2 to quitn");
scanf("%d",&choose); //assigning value to 'choose'.
switch(choose)
{
case 1:
display();
break;
default: break; //always use a default case for handling wrong input.
}
//int display(); //idk why you're redeclaring it, there is no need. If you're making a function call then remove `int` from syntax.
system("cls");
return 0;
}
int display()
{
char fname[20], str[500];
FILE *fp;
printf("Enter the Name of File: ");
gets(fname);
fp = fopen(fname, "r");
if(fp==NULL)
printf("Error Occurred while Opening the File!");
else
{
fscanf(fp, "%[^]", str);
printf("nContent of File is:nn");
printf("%s", str);
}
fclose(fp);
getch();
return 0; 
}

相关内容

  • 没有找到相关文章

最新更新