关于换行符
windows文件系统中的换行符是 /r/n
apple的文件系统中的换行符是 /r
unix的文件系统中的换行符是 /n
我有一个文件时在unix下生成的,我现在需要在windows系统中按行拷贝它。
我用getline后加上'/n',但是拷贝完之后整个文件的换行符都变成了”/r/n“
请问如何用unix的换行符?
ps:有没有人用过Norton Antivirus 2005 ,如何破解?
问题点数:20、回复次数:12Top
1 楼GEATA(学习ing)回复于 2005-01-26 23:26:21 得分 2
std::endl 试试....Top
2 楼maowu(猫呜)回复于 2005-01-26 23:34:53 得分 0
endl就是当前系统的换行符了。我需要在windows系统中添加unix系统的换行符。Top
3 楼zdwaiter(肥佬韦)回复于 2005-01-26 23:38:27 得分 0
晕倒。。。
试试手动加?Top
4 楼maowu(猫呜)回复于 2005-01-26 23:41:34 得分 0
我大概有100多个文件,每个文件4m左右。。。。。
Top
5 楼pcboyxhy(-273.15℃)回复于 2005-01-27 00:17:23 得分 10
用二进制方式打开文件Top
6 楼zhangzhm()回复于 2005-01-27 00:45:34 得分 0
写程序完成.要不 你给我发一个源文件 我给你写好
zhangzhm@126.com
说清你的要求!Top
7 楼GEATA(学习ing)回复于 2005-01-28 00:46:01 得分 2
this is line one\r\n
getline ====> this is line one\r
+ '\n' ====> this is line one\r\n
所以要做的是在getline后去掉'\r'
Top
8 楼whoho(在北方流浪)回复于 2005-01-28 08:24:34 得分 5
用二进制写入\r或者\n
文本方式没有解决的办法Top
9 楼maowu(猫呜)回复于 2005-01-28 21:41:09 得分 0
GEATA(学习ing) ( ) 信誉:100
你说的有道理。
你知道是怎么去掉'\r'吗?
Top
10 楼gdhyj(gdhyj)回复于 2005-01-28 22:20:33 得分 1
有个简便的方法找一台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;
Top
11 楼maowu(猫呜)回复于 2005-01-28 22:46:46 得分 0
其实这个程序在java中我已经有了实现,只是想把它移植到c++来。
Top
12 楼maowu(猫呜)回复于 2005-01-28 22:51:49 得分 0
用二进制方式打开文件真的可以耶。Top




