【发布时间】:2014-10-04 11:31:45
【问题描述】:
我有一个像这样的简单 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
标签: c++ gcc compiler-errors