Visual Studio在打开工程文件时,弹出如下对话框
可能的原因
程序中有一部分是从网页上或其他地方拷贝来的,不是自己在vs上写的。一般从网站上直接拷贝代码会碰到这种问题,可能是代码里有中文的空格,或者看似空格,其实是一些乱七八糟的字符的原因。
原因分析
这是由Windows和Unix不同的标准引起的,即“回车”和“换行”的问题。
回车和换行的区别如下:
符号 | ASCII码 | 意义 |
---|---|---|
\n | 10 换行 | NL |
\r | 13 回车 | CR |
- 来源:在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。到了GUI时代光标都是自由移动的不再有回车的意义…
所以符合Windows开发标准的文本编辑器Visual Studio才会提醒你当前编辑的文本不符合Windows行尾标准…
解决方法
-
方法1:去掉行尾检查的配置
在选项里->环境->文档中有一个"加载时检查一致的行尾"钩去掉就不会检查了。 -
方法2:把行尾格式化
当前文档选择 “文件” >“ 高级保存选项” >“行尾改为
“ Windows(CR LF)” 。