次のようなアーカイブ ファイルがあります。
!<arch>
file1.txt/ 1350248044 45503 13036 100660 28 `
hello
this is sample file 1
ここで、ヘッダーの数字 28 がfile1.txt
サイズです。その数を取得するには、次を使用します。
int curr_char;
char file_size[10];
int int_file_size;
curr_char = fgetc(arch_file);
while(curr_char != ' '){
strcat(file_size, &curr_char);
curr_char = fgetc(arch_file);
}
// Convert the characters to the corresponding integer value using atoi()
int_file_size = atoi(file_size);
ただし、file_size
コードを実行するたびに配列の値が変わります。正しい場合もありますが、ほとんどはそうではありません。ここに私が得るもののいくつかの例がありますfile_size
:
?28`U
2U8U
28 <---正解!
パイ?28
問題は strcat() 関数にあると思いますが、よくわかりません。どんな助けでも大歓迎です。