C 是否需要将文件指针传递到main?
我对C编程非常陌生,我必须制作一个程序,要求用户输入要打开的文件名,然后打开该文件并打印排序后的值 我是否需要将文件指针传递到main,或者我可以在一个函数中打开文件,然后在其他函数中使用该文件C 是否需要将文件指针传递到main?,c,C,我对C编程非常陌生,我必须制作一个程序,要求用户输入要打开的文件名,然后打开该文件并打印排序后的值 我是否需要将文件指针传递到main,或者我可以在一个函数中打开文件,然后在其他函数中使用该文件 int getFile () { char file_name[100]; FILE* fp; int rc; printf("Enter the file name: "); rc = scanf("%s",
int getFile ()
{
char file_name[100];
FILE* fp;
int rc;
printf("Enter the file name: ");
rc = scanf("%s", file_name);
if (rc != 1)
printf ("error");
fp = fopen(file_name, "r");
return 0;
}
是否必须将文件指针从此处传递到main?您可以在一个函数中打开文件,并将其作为参数传递给其他函数。例如,对于预打开的文件句柄stdin,可以将其用作:
char mystring [100];
fgets (mystring , 100 , pFile)
只需将文件名作为参数传递给
main
函数,它可能就是您想要的。
您可以使用intmain(intargc,char*argv[])
,例如:
int main(int argc, char* argv[])
{
FILE* fp;
if (argc == 1)
printf("usage : a.out filename\n");
else
{
if (fp = fopen(*++argv, "r") != NULL)
{
/*your code here*/
}
}
return 0;
}
你也试过了吗?如果您尝试一种方法并发现问题,则更容易提供具体帮助。是否必须传递指向您调用的库方法的文件指针?如果是这样,那么文件指针需要在调用这些方法的地方可用。如果我输入的文件名超过99个字符,则程序开始失败。记住这一点。看起来您需要做的就是返回文件指针。如果他是C编程新手(而且因为他没有指定平台或构建环境),您可以解释为什么在printf使用行中使用“a.out”。@RandyHoward是的,您也可以帮助我改进答案,或者编辑它。