是否有必要将文件指针传递给main?

时间:2013-04-06 02:39:31

标签: c

我对C编程很陌生,我必须创建一个程序,要求用户输入要打开的文件名,然后打开该文件并打印已排序的值。

我是否需要将文件指针传递给main,或者我可以在一个函数中打开文件,我可以在其他函数中使用该文件吗?

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?

2 个答案:

答案 0 :(得分:1)

只需将文件名作为参数传递给main函数,它也许就是你想要的。 您可以使用int main(int argc, 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;
}

答案 1 :(得分:0)

您可以在一个函数中打开该文件,并将其作为参数传递给其他函数。例如,对于预打开文件句柄stdin,您可以将其用作:

char mystring [100];
fgets (mystring , 100 , pFile)