我有这样一个简单的C++代码:C++展示奇怪的行为
#include <iostream>
#include <string>
using namespace std;
int main() {
int n , a , b ;
cin >> n >> a >> b ;
//This two lines are exactly same!!!!
cout << n - max(a + 1, n - b) + 1 << endl ;
//cout << n - max(a + 1, n - b) + 1 << endl ;
}
在这段代码中,我有两个线是完全一样的,但是当我编译确切上面的代码,我得到我的结果与任何输入例如(5,2,3),但是当我取消对第二cout
和评论的第一个与所有以前的状态代码不编译(GNU 4.8.2),并得到这个错误:
sample.cpp:8:5: error: stray ‘\342’ in program
cout << n - max(a + 1, n - b) + 1 << endl ;
^
sample.cpp:8:5: error: stray ‘\200’ in program
sample.cpp:8:5: error: stray ‘\211’ in program
sample.cpp:8:5: error: stray ‘\342’ in program
sample.cpp:8:5: error: stray ‘\200’ in program
sample.cpp:8:5: error: stray ‘\211’ in program
sample.cpp:8:5: error: stray ‘\342’ in program
sample.cpp:8:5: error: stray ‘\200’ in program
sample.cpp:8:5: error: stray ‘\211’ in program
sample.cpp:8:5: error: stray ‘\342’ in program
sample.cpp:8:5: error: stray ‘\200’ in program
我尝试与Microsoft Visual C++ 2010编译器,我得到了相同的结果,但不同的错误:
program.cpp
program.cpp(9) : error C2065: 'n¢?%' : undeclared identifier
program.cpp(9) : error C2065: 'a¢?%' : undeclared identifier
program.cpp(9) : error C2065: '¢?%1' : undeclared identifier
program.cpp(9) : error C2065: '¢?%n¢?%' : undeclared identifier
program.cpp(9) : error C2065: '¢?%b' : undeclared identifier
program.cpp(9) : error C2146: syntax error : missing ';' before identifier '¢?%'
program.cpp(9) : error C3861: '¢?%max': identifier not found
program.cpp(9) : error C2065: '¢?%' : undeclared identifier
program.cpp(9) : error C2065: '¢?%1' : undeclared identifier
我无法理解这两个cout
是完全一样的,但第一个正常工作和第二个不为什么这是一个编译器错误?
考虑使用不会插入怪异字符不同的文本编辑器。我衷心建议VIM – 2014-10-04 12:13:07