关于换行符

maowu 2005-01-26 10:36:20
windows文件系统中的换行符是 /r/n
apple的文件系统中的换行符是 /r
unix的文件系统中的换行符是 /n

我有一个文件时在unix下生成的,我现在需要在windows系统中按行拷贝它。
我用getline后加上'/n',但是拷贝完之后整个文件的换行符都变成了”/r/n“
请问如何用unix的换行符?


ps:有没有人用过Norton Antivirus 2005 ,如何破解?
...全文
736 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
GEATA 2005-01-28
  • 打赏
  • 举报
回复
this is line one\r\n
getline ====> this is line one\r
+ '\n' ====> this is line one\r\n

所以要做的是在getline后去掉'\r'

maowu 2005-01-28
  • 打赏
  • 举报
回复
用二进制方式打开文件真的可以耶。
maowu 2005-01-28
  • 打赏
  • 举报
回复
其实这个程序在java中我已经有了实现,只是想把它移植到c++来。
gdhyj 2005-01-28
  • 打赏
  • 举报
回复
有个简便的方法找一台unix和一台windows的机器,其中一台有ftp服务,在没装ftp服务的机上做客户端用ascii方式取文件,用BIN方式上传(反过来也行,反正二次用不同的方式),这样文件就转换过来了,如果没有unix的机器也没关系,网上多得是unix下ftp的机器(网易免费主页就是,不过限制了单个文件的大小),别外写程序来转换也很容易,C的我没现成的代码,有delphi的供你参考一下:

function UnixToDos(sUnixText:string):string; //unix文本格式到DOS文本格式的转换
var
ch,ch1 : char;
sReturn : string;
i : integer;
begin
sReturn := '';
for i:=1 to length(sUnixText) do begin
ch := sUnixText[i];
case ch of
#$A :if(ch1<>#$D) then sReturn := sReturn + #$D#$A
else
sReturn := sReturn + ch;
#$04:begin
sReturn := sReturn + #$1A;
break;
end
else
sReturn := sReturn + ch
end;
ch1 :=ch;
end;
result := sReturn
end;
maowu 2005-01-28
  • 打赏
  • 举报
回复
GEATA(学习ing) ( ) 信誉:100

你说的有道理。
你知道是怎么去掉'\r'吗?
whoho 2005-01-28
  • 打赏
  • 举报
回复
用二进制写入\r或者\n
文本方式没有解决的办法
zhangzhm 2005-01-27
  • 打赏
  • 举报
回复
写程序完成.要不 你给我发一个源文件 我给你写好
zhangzhm@126.com
说清你的要求!
pcboyxhy 2005-01-27
  • 打赏
  • 举报
回复
用二进制方式打开文件
maowu 2005-01-26
  • 打赏
  • 举报
回复
我大概有100多个文件,每个文件4m左右。。。。。
zdwaiter 2005-01-26
  • 打赏
  • 举报
回复
晕倒。。。

试试手动加?
maowu 2005-01-26
  • 打赏
  • 举报
回复
endl就是当前系统的换行符了。我需要在windows系统中添加unix系统的换行符。
GEATA 2005-01-26
  • 打赏
  • 举报
回复
std::endl 试试....

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧