前言

今天在无聊逛以前的贴子,发现一个之前自己在2011-04-04时候问的C++问题,钝感好奇,于是点了进去。(原帖子:高手来帮忙吧..快喷了)看了一眼好像是,刚刚学C++的样子,里面总共有两个问题,其中第二个是我们主要今天要探讨的问题。

正文

#include <iostream>  
using namespace std;   
int main(void)     
{int i=1;     
while(i<=100){cout<<i+1<<endl;    
}    
return 0;    
}

以上是源代码,除了有点格式结构奇怪以外,看不出有任何的问题,可是偏偏报错了,为什么呢?错误在如下:

/**
1>------ 已启动生成: 项目: 问问, 配置: Debug Win32 ------
1>生成启动时间为 2011-4-4 23:14:42。
1>InitializeBuildStatus:
1>   正在对“Debug\问问.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>   技能.cpp
1>c:\documents and settings\zhou\my documents\visual studio 2010\projects\问问\问问\技能.cpp : error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
1>c:\documents and settings\zhou\my documents\visual studio 2010\projects\问问\问问\技能.cpp(1): warning C4067: 预处理器指令后有意外标记 - 应输入换行符
1>
1>生成失败。
1>
1>已用时间 00:00:03.39
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
**/

很奇怪吧。Mac文件格式?是什么意思。随后,一位C++大神在后面给出了答案(可以看出来11年前的贴吧的群众还是很有爱的)

30c6e1372c1c9fff6de1260fac4734b.png

遂发现可能是复制编码格式的问题,于是CSDN一下,在这篇中发现了相同的问题error C4335:检测到Mac文件格式:请将源文件转换为DOS格式或UNIX格式

发生的原因是:代码中部分代码的格式不正确

可能发生的情况:很多时候为了方便,常将代码从其它地方复制而来(如QQ),这样直接复制到编程环境中就有可能出现上面的问题。

解决方法:手动输入或在word编辑好后再复制到VS

其实是个蛮神奇的故事,当年在贴吧也引发了小部分人的围观(当年的贴吧群众好有爱呀= -=!!!)看到了就顺便记录一下吧 哈哈哈

参考

[1] 高手来帮忙吧..快喷了
[2] error C4335:检测到Mac文件格式:请将源文件转换为DOS格式或UNIX格式

Q.E.D.


立志做一个有趣的碳水化合物