当我在Eclipse中安装并运行以下C ++代码并在Windows上安装Cygwin时,line.length()的结果比安装在运行Windows的同一台计算机上的Visual Studio 2012中的结果大1。
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <string>
using namespace std;
string getInput(string, bool);
int main()
{
string line = getInput("Please enter a string: ", false);
cout << line.length() << endl;
return 0;
}
string getInput(string message, bool newLine)
{
string input;
cout << message;
if (newLine)
cout << endl;
getline(cin, input);
return input;
}
我已经确定这是由控制台引起的。如果我使用命令提示符运行相同的编译二进制文件,则lenghth.size()比CDT Build Console中的少一个。例如,输入10将导致命令提示符中的大小为2,CDT构建控制台中的大小为3。有关使用Cygwin进行此工作的任何想法吗?
Windows Server 2012 Datacenter Evaluation Cygwin64 1.7.27 使用Cygwin C ++编译器的eclipse-cpp-kepler-SR1-win32
我想在控制台中使用Eclipse和CDT进行以下输出:
Please enter a string: 10
2
而不是以下输出(我目前看到):
Please enter a string: 10
3
我发现如果我使用MingW而不是Cygwin,我就不会遇到这个问题。