当前位置:C++技术网 > 精选软件 > 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式

检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式

更新时间:2016-06-23 23:29:22浏览次数:1+次

    在复制网上一段代码放在VS中编译的时候,竟然提示:
检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
    这是什么鬼?然后我把这段代码粘贴到记事本,试图用记事本来消除格式问题,结果发现,在VS中显示换行的,在记事本竟然都不换行了。粘贴到 Notepad++中,也是能够换行的。据我的经验,这明显就是换行符的问题。根据提示的文件格式,竟然有三种系统的格式,说明是不同系统版本的换行符问 题。
    在Windows中的换行符是\r\n,记事本就是这样的换行。而Mac的换行符是\r,Unix中的换行符是\n。\r为回车符,也记做CR,\n为换行符,记做LF。所以Windows中换行符也叫作CR LF,Mac的就是CR,Unix的就是LF。
    然后想起了之前经常复制一些文字,看着好好的换行,复制到记事本就全乱了。但是放回原来的位置,竟然又是好的。现在终于知道为什么了。
    网上有很多说先将文字复制到这里,然后在粘贴到那里,再保存。好麻烦。我们也经常见过VS提示保存格式结尾不正确的问题。所以,我相信在VS中是提供了格式转换的功能的。

    文件保存的功能应该是在【文件】这一组菜单中。然后我点击去却没有发现对应的菜单。然后我想起了,VS的菜单是条件式的,不单击文本和单击其中打开的文本(编辑文本)菜单是不一样的。我就单击了一下代码文本,果然出现了一个菜单,如下图所示:

检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式


    发现了一个【高级保存选项】菜单项,然后点击进去,弹出如下对话框:

检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式


    这个对话框出来之后,是不是很熟悉呀。然后点开行尾,有三个选项,和想的一样。VS会自动检测当前选中的文本的行尾。所以当前这个设置自然就是MAC的格 式,我选择为【Windows(CR LF)】,也就是VS的格式,编码就是默认的。然后确定,VS提示文件已经修改,标题上多了个*号,然后保存文件。
    保存好后,重新编译了一下。没有提示了,果然是这个问题。解决问题的同时,还学到了东西,真不错。