こんにちは私のコードは次のとおりです
char name[100] ;
_getcwd(name, (size_t)sizeOfFileName);
strcat(name,"\\") ;
strcat(name, fileName) ;
char *value_str= NULL ;
file = fopen(name, "a+");
if(!file)
printf("bad file name") ;
for(i = 0; i<fileSize ; i++)
{
value_str = fp_to_str(ddata[i]) ;
strLength= strlen(value_str) ;
value_str[strLength+1] = 10 ;
num = strlen(value_str);
count = fwrite(value_str, sizeof(char), num, file);
}
file で指定されたファイルに value_str の値を書き込む際に問題が発生しています。fwrite を含むコード行に到達するまで、value_str の値は変更されません。その後、ジャンク値に変わります。何が悪いのか教えてください。SizeOfFileName は先に関数に渡されます。コードは、コードの fwrite 行に到達するまで完全に機能し、その後その値が変化します。いくつかのジャンク値がテキスト ファイルに書き込まれます。
関数 fp_to_str は、現在のコードの私自身の関数です。value_strに必要な値を適切に返します。fp_to_str が行うことは、double 数値を文字配列に変換することです。これは、value_str に格納されます。
コードが fwrite で完了すると、value_str にある正しいデータがガベージ値に変更されます。
ddata[i] は double 配列から double の数値を 1 つずつ取得し、fp_to_str() に渡します。私がやろうとしているのは、ddata[] 配列にあるこれらの double の数値をテキスト ファイルに書き込むことです。
文字列の末尾に値 10 を追加する行にコメントを付けました。文字列の最後にヌル文字を追加する必要があると誤って想定しました。私はまだ同じ問題を抱えています。誰かが理由を知っていますか?