0

入力ファイル名と同じ出力テキスト ファイルを生成するオプションはありますか?

Cでは、次を使用してファイル名を取得しました:

gets(file_name);

次の方法で開きます。

f1=fopen(file_name,"r");

コメント。形式の種類を入力せずにファイルを開くにはどうすればよいですか? たとえば、ファイルを読み取るfile100.txtために入力したい場合。file100

出力ファイルを入力ファイルと同じ名前で取得するオプションはありますか?

4

3 に答える 3

0

ファイル名の問題については、たとえばsprintf次のように使用できます。

char full_file_name[256];
sprintf(full_file_name, "%s.txt", file_name);

もちろん、入力されたファイル名の検証がなければ、これはお勧めできません。

あなたの他の問題については、のドキュメントからfopen:

r+ 読み取りおよび書き込み用に開きます。ストリームは先頭に配置されます
       ファイルの。

w+ 読み取りおよび書き込み用に開きます。ファイルが存在しない場合は作成され、
       それ以外の場合は切り捨てられます。
       ストリームはファイルの先頭に配置されます。

a+ 読み取りと追加 (ファイルの最後に書き込み) のために開きます。ファイルは
       存在しない場合は作成されます。
       読み取りの初期ファイル位置は、ファイルの先頭です。
       ただし、出力は常にファイルの末尾に追加されます。
于 2012-06-19T11:06:43.877 に答える
0

使用できます

snprintf(new_filename, sizeof new_filename, "%s.%d", File_name, int_val);
于 2012-06-19T11:03:13.577 に答える
0

同じ名前の出力ファイルを作成するには、出力コンテンツを何らかの文字列に保存するだけです。次に、ファイルを閉じて、書き込みモード ("w") で再度開きます。そして、内容を書き込んで再度ファイルを閉じます。

于 2012-06-19T11:11:55.750 に答える