参考:http://blog.csdn.net/hinyunsin/article/details/6401854
#include <stdio.h>int main(int argc, char *argv[])
{char he[20] = "hello world\n";FILE *outfile = fopen("t.txt", "wt");fwrite(he, sizeof(char), 20, outfile);fclose(outfile);outfile = fopen("b.txt", "wb");fwrite(he, sizeof(char), 20, outfile);fclose(outfile);return 0;
}
用WinHex查看本地的两个文件
t.txt
b.txt
可以看到按文本写时 fopen 把 '\n' 替换为了 0D0A
对应的,读文件时
#include <stdio.h>
#include <string.h>void echo(char *sz)
{int i = 0;while(sz[i]){printf("%x ", sz[i]);++i;}printf("\n");
}int main(int argc, char *argv[])
{char he[20];FILE *infile = fopen("t.txt", "rt");fread(he, sizeof(char), 20, infile);echo(he);fclose(infile);infile = fopen("b.txt", "rt");fread(he, sizeof(char), 20, infile);echo(he);fclose(infile);infile = fopen("t.txt", "rb");fread(he, sizeof(char), 20, infile);echo(he);fclose(infile);infile = fopen("b.txt", "rb");fread(he, sizeof(char), 20, infile);echo(he);fclose(infile);return 0;
}

第一行,以文本方式打开t.txt,fopen会将0d0a替换为0a
第二行,以文本方式打开b.txt,返回原内容
第三行,以二进制方式打开t.txt,fopen不作替换,直接读取0d0a
第四行,以二进制方式打开b.txt,返回原内容