1

タイトルは、このトピックの正義を実際に行っていません。それは実際には非常に単純です、それが私の問題です。C言語で書かれたプログラム(以下のコード)があります。このプログラムで、コマンド プロンプト コンソール ウィンドウから実行できる exe ファイルを作成し、テキスト ファイルをパラメーターとして受け取るようにしたいと考えています。つまり、簡単に言えば。CMDのコマンドラインでこれを言う必要があります:

C:\Users\Username\Desktop\wrapfile.exe content.txt

私の唯一の問題は、コードを正しくすることです。私はVisual Studioに伝えたい:「あなたが開くべきファイルは、コマンドプロンプトウィンドウでパラメータとして与えられます。設定された場所はありません...」

それ、どうやったら出来るの?

これが私の作業コードです (ただし、*fp 定義でいくつか変更する必要があります。

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{

    FILE *fp; // declaring variable 


    fp = fopen("c:\\users\\*Put you're PC username here*\\Desktop\\contents.txt", "rb"); // opens the file


    if (fp != NULL) // checks the return value from fopen
    {
        int i;
        do
        {
            i = fgetc(fp);     // scans the file 
            printf("%c",i);
            printf(" ");
        }
        while(i!=-1);
        fclose(fp);
    }
    else
    {
        printf("Error.\n");
    }
}

みんな、ありがとう!

4

1 に答える 1

1

ケンが上で述べたように、mainメソッドの引数は、コマンドラインから渡す値です。Argcは「引数数」であり、argvは「引数値」です。したがって、コマンドラインから渡された最初の引数を開くには、次のように変更します。

fp = fopen("c:\\users\\*Put you're PC username here*\\Desktop\\contents.txt", "rb"); // opens the file

fp = fopen(argv[1],"rb");

入力を開く前に、必ずエラーチェックを実行してください(つまり、argv [1]がnullではない)。また、参考までに、あなたの場合、argv[0]が実行可能ファイルの名前になります。

于 2012-12-06T00:17:33.657 に答える