C\C++输出到文件的换行问题

用16进制编辑器查看输出的文件
\n 的16进制值是 0D 0A (即回车+换行)
\r 的16进制值是 0D (即回车)

有没有什么办法输出到文件时的16进制值只是 0A 的?
1、我按第一个回答的方法试过了(char)10输出到文本后的16进制值还是 0D 0A (即回车+换行)
2、按第二个回答
>ch='\n';
>printf("%d",ch);
>打出来的一定是10
没错,但输出到文本文件就变成2个字节的内容了,同1
3、第三个的回答我在考虑,感觉能行,因为我怀疑问题不在\n \r上,而在ofstream的方式上
我晚上再想一想

\n 十六进制的值是 0A,只有一个值,不是两个
\r 十六进制的值是 0D
用printf语句就能判断出来。

ch='\n';
printf("%d",ch);
打出来的一定是10
补充:
我给你一段代码吧,估计你打开文件时用的参数有问题。
#include <stdio.h>
main()
{
char dest[10]= "123\n123";
FILE *fl;
fl=fopen("2.txt","wbr");
fwrite(dest,sizeof(char),strlen(dest),fl);
fclose(fl);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-08-10
\n 十六进制的值是 0A,只有一个值,不是两个
\r 十六进制的值是 0D
用printf语句就能判断出来。

ch='\n';
printf("%d",ch);
打出来的一定是10

参考代码如下:
#include <stdio.h>
main()
{
char dest[10]= "123\n123";
FILE *fl;
fl=fopen("2.txt","wbr");
fwrite(dest,sizeof(char),strlen(dest),fl);
fclose(fl);
return 0;
}
第2个回答  2007-05-08
把相应的位置换为(char)10就可以了嘛
如:char a = (char)10;
-----------------
我知道了。哈哈,上次没有仔细想一下。其实你怎么弄都会成你说的样子,因为Windows保存文件默认是ANSI码的,也就是双字节方式保存文件,所以会有上面的现象。我想用utf-8编码保存就会正确了,但是我不会用啊,这个问题就不要问我了。。。你试着用二进制的方式保存来试一下,应该就会好了。呵呵!
第3个回答  2007-05-07
文件用二进制模式写就行了

C\\C++输出到文件的换行问题
\\n 十六进制的值是 0A,只有一个值,不是两个 \\r 十六进制的值是 0D 用printf语句就能判断出来。如 ch='\\n';printf("%d",ch);打出来的一定是10 补充:我给你一段代码吧,估计你打开文件时用的参数有问题。include <stdio.h> main(){ char dest[10]= "123\\n123";FILE *fl;fl=fope...

c++中向文件输出如何换行
cout可以,也可以采用endl等。

c\/c++中txt文件读写换行怎么实现
在C语言中,以fopen打开文件,返回值为文件指针FILE*型。可以以如下方式读写换行:1、 fgetc\/fputc 该组函数功能为读写单个字符,如ch=fgetc(fp); fputc(ch, fp);2 fscanf\/fprintf 格式化输入输出函数。 以%c格式时,可以读写换行。如 fscanf(fp, "%c",&ch);fprintf(fp,"%c",ch);二、C+...

c++输入字串读入文件时要怎在文字档里换行
include <stdlib.h> include <memory.h> int main(int argc, char *argv[]){ FILE *fp = NULL;char ch = 0;int i = 0;char buf[4] = {0};fp = fopen("aaa.txt","w");if( NULL == fp ){ printf( "open file failed!\\n" );exit( 1 );} printf( "Input here:\\n" )...

C++结果换行问题
添加换行符\\n printf("%.2f\\n", V);printf("%.2f\\n", L);

一段C++代码,关于换行符的问题
你看的效果都是换行 但是 程序输出是现在内存中暂时保存一下的,成为缓存, 然后输出到屏幕上,\\n 是单纯的换行符,能在 缓存字符串 中 加个换行 endl 的作用是先是内存中字符串 加个换行 ,然后执行一个把内存中剩余所有缓存字符串 输出到屏幕上 的命令 或者说 一个endl 是一个 \\n 再加一个...

编程C\/C++\/MFC:TXT里怎样插入换行才起做用
"\\n"能不能换行和编辑器有关,一般来说如果“\\n”不能换行的话,可以试试“\\r\\n”或者“\\r”,如果都不行,那估计不是程序的原因就是编辑器的原因

C++读取TXT的换行问题
while(!out1.eof()){ out1.getline(line,sizeof(line));\/\/读取换行并丢弃换行符 cout << line;cout<<endl;\/\/加入换行符 }

c++中读写操作换行问题
实际在DOS里也没有换行,因为你往文件里写的时候和读出的时候都没有换行符,write函数里关闭文件前加一句fputc('\\n', fp);

C++的一个程序换行问题?
键盘输入结束标志是换行符。所以必须换行。多次输出,只要不给endl 就不换行。如果把键盘输入改用文件输入。再把输入的内容显示出来,就看不到换行了。不过,这样做没多少实际意义。

相似回答