string.length()string.size()与使用Cygwin和Visual Studio的Eclipse不同

时间:2014-01-17 07:42:42

标签: c++ eclipse visual-studio cygwin string-length

当我在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,我就不会遇到这个问题。

0 个答案:

没有答案