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

用16进制编辑器查看输出的文件\n的16进制值是0D0A(即回车+换行)\r的16进制值是0D(即回车)有没有什么办法输出到文件时的16进制值只是0A的?1、我按第一个回... 用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的方式上
我晚上再想一想
展开
 我来答
yisbad
2007-05-08 · TA获得超过538个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:161万
展开全部
\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;
}
可以叫我表哥
2015-08-10 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
\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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6de645cf5
2007-05-08 · TA获得超过252个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:410万
展开全部
把相应的位置换为(char)10就可以了嘛
如:char a = (char)10;
-----------------
我知道了。哈哈,上次没有仔细想一下。其实你怎么弄都会成你说的样子,因为Windows保存文件默认是ANSI码的,也就是双字节方式保存文件,所以会有上面的现象。我想用utf-8编码保存就会正确了,但是我不会用啊,这个问题就不要问我了。。。你试着用二进制的方式保存来试一下,应该就会好了。呵呵!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujun_7177
2007-05-07 · TA获得超过649个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:638万
展开全部
文件用二进制模式写就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式