您好我的代码如下
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);
}
我在将 value_str 的值写入 file 给出的文件时遇到问题。在到达包含 fwrite 的代码行之前,value_str 的值不会改变。然后它变为一些垃圾值。你能告诉我有什么问题吗?SizeOfFileName 早先被传递给函数。代码完美运行,直到它到达 fwrite 代码行,然后它的值才发生变化。并且一些垃圾值被写入文本文件。
函数 fp_to_str 是我自己在当前代码中的函数。它正确地返回我想要 value_str 的值。fp_to_str 所做的是将一个双精度数转换为一个字符数组,存储在 value_str 中。
一旦使用 fwrite 完成代码,它会将 value_str 中的正确数据更改为一些垃圾值。
ddata[i] 一个接一个地从双精度数组中取出双精度数并将其传递给 fp_to_str()。我想要做的是将 ddata[] 数组中的这些双数写入文本文件。
我已经注释了将值 10 添加到字符串末尾的行。我错误地认为我必须在字符串末尾添加一个空字符。我仍然有同样的问题。有谁知道为什么?