摘要: DOS文件(windows格式文件)中,按一下ENTER就是输入了rn,这就是回车换行 MAC文件里,用r换行 UNIX文件里,用n换行 自己尝试了一些r、n的组合,归纳了下规律: windows下用文本方式写文件时缓冲区里的n或者r都会被自动替换为rn写入...
DOS文件(windows格式文件)中,按一下ENTER就是输入了rn,这就是回车换行 MAC文件里,用r换行 UNIX文件里,用n换行 自己尝试了一些r、n的组合,归纳了下规律:
windows下用文本方式写文件时缓冲区里的n或者r都会被自动替换为rn写入文件,即使是连着的rn,也会被替换成rnrn(但是msdn上面只说r被替换为rn,我的前面一篇博文里有原文)。windows下用文本方式读文件时 文件中的rn自动替换为n存放到缓冲区里(这点和msdn是符合的,前面的博文里有原文) r不会被替换。假设要读取的文件流长度小于缓冲区长度 如果用fread文本模式读文件,rn被替换为n读进缓存区里 如果是fgets文本模式读文件,碰到第一个n(这里的r和n都是指经过转换后读入缓冲区的,即rn被替换为n)后停止读取,缓存区里存放的是n之前的字符串(包括这个n以及之前所有的r)fread和fwrite的返回值问题文本模式写文件时,n或r自动替换成rn,但是fwrite的返回值里还是算写了一个字符(和msdn符合,前面一篇博文有原文)文本模式读文件时,rn被自动替换为n,但是也算是读了一个字符(和msdn的不一样,msdn是说算读了2个,前面的博文里有原文)