テキストファイルの内容を動的に割り当てられた文字配列にコピーする必要があります。Cでテキストファイルを文字列にコピーする方法は?
私の問題は、ファイルの内容のサイズを取得しています。 Googleはfseek
とftell
を使用する必要があることを明らかにしていますが、ファイルは明らかにバイナリモードで開く必要があり、それはゴミだけです。
EDIT:テキストモードで開こうとしましたが、奇妙な数字が表示されます。あなたは、ファイルの末尾にカーソルを置き、ファイルを開くオフセットを格納し、かつの先頭に戻ることができ
long f_size;
char* code;
size_t code_s, result;
FILE* fp = fopen(argv[0], "r");
fseek(fp, 0, SEEK_END);
f_size = ftell(fp); /* This returns 29696, but file is 85 bytes */
fseek(fp, 0, SEEK_SET);
code_s = sizeof(char) * f_size;
code = malloc(code_s);
result = fread(code, 1, f_size, fp); /* This returns 1045, it should be the same as f_size */
ファイルをバイナリモードで開くと、その内容は変更されません。あなたが持っているコードを投稿すれば、起こりうる問題を見つけることができます。 –
この質問を参照してください:http://stackoverflow.com/questions/410943/reading-a-text-file-into-an-array-in-c –
これは私がやっていることとほとんど同じですか? – Javier