【发布时间】:2019-05-14 16:51:54
【问题描述】:
我目前正在尝试让我的代码完全按照打印的方式将数据写入文件。
出于某种原因,当我之后打开文本文件时,只有二进制数据。
如何将其转换为可读格式?
代码:
#include <stdio.h>
void calcData(float *x,float* y){
float tmpX,tmpY,a,b;
a = 2.75;
b = 0.2;
tmpX = *x;
tmpY = *y;
*x = tmpY;
*y = (-b*tmpX) + (a*tmpY) - (tmpY*tmpY*tmpY);
return;
}
int main(){
FILE *datei;
float x = 0.5;
float y = 0.5;
int i;
for(i=0;i<1000;i++){
calcData(&x,&y);
printf("%f \t %f \n",x,y);
datei=fopen("txt.txt","a");
fwrite(&x,1,sizeof(float),datei);
fwrite("\t",1,sizeof(char),datei);
fwrite(&y,1,sizeof(float),datei);
fwrite("\n",1,sizeof(char),datei);
fclose(datei);
}
}
【问题讨论】:
-
你应该使用
fprintf——就像你使用printf一样。 -
"将数据完全按照打印的方式写入文件" .那是什么意思?写入文件和打印到文件有什么区别。 “打印方式”与“写入方式”完全相同。
-
另一种方式是重定向程序输出,例如
myprogram > txt.txt -
OT:关于:
float x = 0.5;和float y = 0.5;和a = 2.75;和b = 0.2;被声明的文字是doubles,而不是floats要生成floats,每个文字必须包含尾随f,例如:0.2f