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的方式上
我晚上再想一想 展开
\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的方式上
我晚上再想一想 展开
4个回答
展开全部
\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;
}
\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 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数: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;
}
\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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把相应的位置换为(char)10就可以了嘛
如:char a = (char)10;
-----------------
我知道了。哈哈,上次没有仔细想一下。其实你怎么弄都会成你说的样子,因为Windows保存文件默认是ANSI码的,也就是双字节方式保存文件,所以会有上面的现象。我想用utf-8编码保存就会正确了,但是我不会用啊,这个问题就不要问我了。。。你试着用二进制的方式保存来试一下,应该就会好了。呵呵!
如:char a = (char)10;
-----------------
我知道了。哈哈,上次没有仔细想一下。其实你怎么弄都会成你说的样子,因为Windows保存文件默认是ANSI码的,也就是双字节方式保存文件,所以会有上面的现象。我想用utf-8编码保存就会正确了,但是我不会用啊,这个问题就不要问我了。。。你试着用二进制的方式保存来试一下,应该就会好了。呵呵!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件用二进制模式写就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询