C言語でファイルを出力するときに、ファイル名に変数を使ったり、ファイル名のあとに変数を付け加えたりしたいのですがどのようにしたらよいでしょうか?
例えば int a = 100; だとしたら
ファイル名を100として出力したり、
もともと abc というファイルがあったら、それを abc100 などにしたいのです。
お願いします。
ファイル名を変数で
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: ファイル名を変数で
char *file_name = (char*)calloc(strlen("ABC")+1, sizeof(char));
char *buf_str;
int n = 100;
strcpy(file_name, "ABC");
buf_str = (char*)calloc(4, sizeof(char));
sprintf(buf_str, "%d", n);
////////////////////////////////////////////////////////////////////
file_name = (char*)realloc(file_name, (strlen(file_name) + strlen(buf_str)+1)*sizeof(char));
strcat(file_name, buf_str);
////////////////////////////////////////////////////////////////////
まず、realloc()で領域を拡張します、strlen(file_name) + strlen(buf_str) + 1 はfile_nameの長さに、追加する文字列の長さと\0文字分を足してます。
-----------------------------------------------------------------------------------------------------------------------------
一部コードにミスがあったので修正。