0

我对 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?

4

2 回答 2

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;
}
于 2013-04-06T02:46:27.670 回答
0

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

char mystring [100];
fgets (mystring , 100 , pFile)
于 2013-04-06T02:45:39.520 回答