【发布时间】:2013-12-24 21:33:11
【问题描述】:
我正在尝试将 txt 文件转换为二进制文件,该 txt 包含 1-20 的 数字 除以(输入)。只要我知道它工作正常(调试它)但也许它可能包含错误,所以你可以看到它。之后我想检查什么是我的二进制文件。 我想打印二进制文件来监控。但是它会打印出一段内存污垢。 您能帮我找出代码中的问题吗?提前致谢
void txt_to_bin (void) /*Make binary from txt*/
{
FILE *ft,*fb;
int a;
ft = fopen("binadatok.txt","rt");
fb = fopen("versenyazonosito.dat","wb");
while (fscanf(ft,"%d\n",&a) != EOF)
{
fwrite(&a,sizeof(a),1,fb);
printf("%d\n", a);
}
}
void bin_olvas(void) /*Print out the binary*/
{
FILE *f;
int k;
f = fopen("versenyazonosito.dat","rb");
while(!feof(f))
{
(fscanf(f,"%d\n",&k) != EOF);
printf("%d\n", k);
}
fclose(f);
}
【问题讨论】:
-
(fscanf(f,"%d\n",&k) != EOF);这应该怎么做? -
我想从 f 中扫描一个 int,并将其存储在 k 中
-
但是你为什么要把它括在括号中并在它后面加上一个分号
(abcd == 1234);?给定 -Wall,GCC 可能会抱怨:“语句没有意义”。 -
首先我没有附上它,但如果我这样做了,我会得到一个错误“语法错误:缺少';'在标识符“printf”之前“
-
随机添加构造直到错误“消失”为cargo cult programming。