0

私はCプログラミングにまったく慣れていないので、ファイル名を入力して開くようにユーザーに要求するプログラムを作成し、そのファイルを開いてソートされた値を出力する必要があります。

ファイル ポインタを main に渡す必要がありますか、それとも 1 つの関数でファイルを開くだけで、他の関数全体でそのファイルを操作できますか?

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;

}    

ここからメインにファイルポインタを渡す必要がありますか?

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

1 つの関数でファイルを開き、それを引数として他の関数に渡すことができます。たとえば、事前オープン ファイル ハンドル stdin の場合、次のように使用できます。

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