如何将UNIX下的 C语言文件改为DOS下的C语言文件? (30分)

  • 主题发起人 主题发起人 lixx
  • 开始时间 开始时间
L

lixx

Unregistered / Unconfirmed
GUEST, unregistred user!
我下载了一些C语言源程序原是用在UNIX下的,现在我想把它在DOS方式下进行编译,发现
如果用UltraEdit打开它会下面的提示:
   ____________________________________________________________ 
|文件可能不是DOS格式 [X]
------------------------------------------------------------
| 你将....C转换为DOS格式的吗? |
| |
| |
| [是]     [否] |
| |
------------------------------------------------------------
如果用TC之类的DOS方式下C编译器打开时,代码都乱了,(提示好像是行太长的意思)
我想可能是UNIX下回车换行与DOS方式下不同。
由于我有一批这样的文件,如果手工修改,工作量就太大了,有没有工具或简单的方法
转换一下?
多谢了!
 
有呀
把所有这些文件都选上,然后用ultraedit打开,批量
然后按住y不放
一会儿就都好了
:)
 
关键是这样按住 "y" 之后,仍然不行,因为下次打开时还是会提问:
   ____________________________________________________________ 
|文件可能不是DOS格式 [X]
------------------------------------------------------------
| 你将....C转换为DOS格式的吗? |
| |
| |
| [是]     [否] |
| |
-----------------------------------------------------------|
不信你试试?
现在我是没办法了,我编译了一个文件,只好一行行的修改,费了半天劲!!!
(最新发现:在DOS TC 下打开时,发现那些UNIX下的换行符都是显示为灰色的“J”)
 
三种方法:
第一,用doscp命令,我这里没有linux环境,你可以查一下手册
第二,用unix2dos命令
第三,看下面的文章,把里面的东西反过来用
-------------------------------------------
如何去掉文本中的 ^M 硬回车?
不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。
cat filename |tr -d '/015' >newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.
dos2unix filename filename2
反之
unix2dos filename filename2
在vi 中用:$s/^M//g
^是crtl-V crtl-M
 
你用NOTEPAD.EXE打开,去除末尾的^M,就好了
 
unix2dos[:D]
另外你完全可以用gcc for windows直接编译
 
DOS格式只是在换行符前多加一个回车符,
 
UltraEdit的Files菜单中有个转换工具。
 
后退
顶部