fopen的打开模式中有text和binary两类,如"rt", "rb",但是在实际工程中,应该只使用binary格式,彻底忘记text模式。为什么呢?因为当以text方式来操作文件时,在windows下和linux的结果是不一样的。你总不想一份代码有2种结果吧?so,永远只用binary模式。
- windows下文本文本常以\r\n会换行符。"rt"方式打开时,fread得到的结果是以"\n"为换行符的。以"rb"打开时,fread结果是以\r\n为换行符的。也就是说,只有用"rb"方式才能看到文件的真实内容。
- linux默认换行符为\n
/*
14周作业
读一个文本文件,并用二进制方式生成相应的新文件,并比较两个文件的大小,
要求两个文件名从键盘输入
*/
#include <stdio.h>
int main()
{
// 文件名
char filename1[256] = "1.txt";
char filename2[256] = "2.txt";
// 从控制台获取文件名
printf("input filename 1: ");
scanf("%s", filename1);
printf("input filename 2: ");
scanf("%s", filename2);
// 打开文件: text
FILE* fp1 = fopen(filename1, "rt");
if(!fp1)
{
printf("Failed to open input file: %s !\n&