変更したいのですが:
f = fopen("/home/file.txt", "w");
結果は次のとおりです。
f = fopen("/home/%s.txt", "w",argv[1]);
fopenのオプションについて考えていますか?
ありがとうございました。
変更したいのですが:
f = fopen("/home/file.txt", "w");
結果は次のとおりです。
f = fopen("/home/%s.txt", "w",argv[1]);
fopenのオプションについて考えていますか?
ありがとうございました。
私はこれを提案します:
char filename[MAX_PATH];
snprintf(filename, sizeof(filename), "/home/%s.txt", argv[1]);
f = fopen(filename, "w");
上記の操作でラッパーを作成することはできますが、の変更はfopen
簡単な作業ではありません。
fopen
呼び出しを関数でラップするだけです。
FILE* my_fopen(char filename[]) {
static char buffer[MAXIMUM_SIZE];
snprintf(buffer, MAXIMUM_SIZE, "/home/%s.txt", filename);
return fopen(buffer, "w");
}
次に、あなたがしなければならないのは、を呼び出すことだけですmy_fopen("myfile.txt")
。
fopen()
フォーマット文字列を受け取らないので、事前に作成する必要があります。
char buf[MAX_PATH];
snprintf(buf, sizeof(buf), "/home/%s.txt", argv[1]);
FILE *f = fopen(buf, "w");