读文件是这样的:
#include "stdlib.h"
main()
{
FILE *fp;
char buf;
fp=fopen("a.txt","r");
while(fread(&buf,1,1,fp))
printf("%c ",buf);
fclose(fp);
}
写文件是这样的:
#include "stdlib.h"
main()
{
FILE *fp;
char buf;
fp=fopen("a.txt","w");
while((buf=getchar())!='q')
fwrite(&buf,1,1,fp);
fclose(fp);
}
PS:这里buf缓冲区只开了一个字节,做个例子,你可根据需要变化.
你的问题可能原因是:输出内容超过了你的缓冲区.
比如:你读出10个字节,甚至可能没读出,而你打印100个字节,后面的就很有可能是"烫".应该不是2进制的问题.
文本文件
读文件:
#include "stdlib.h"
main()
{
FILE *fp;
char buf;
fp=fopen("a.txt","r");
while(fread(&buf,1,1,fp))
printf("%c ",buf);
fclose(fp);
}
写文件:
#include "stdlib.h"
main()
{
FILE *fp;
char buf;
fp=fopen("a.txt","w");
while((buf=getchar())!='q')
fwrite(&buf,1,1,fp);
fclose(fp);
}