C++ 获取工作目录时遇到问题

C++ 获取工作目录时遇到问题,c++,visual-c++,C++,Visual C++,以下是我试图获取当前工作目录的方式: char* ch; if( (ch = _getcwd( NULL, 0 )) == NULL ) { cout << "Could not get working directory!" << endl; } // skonvertujme char* na string, s tym sa nizsie bude lahsie pracovat stringstrea

以下是我试图获取当前工作目录的方式:

    char* ch;
    if( (ch = _getcwd( NULL, 0 )) == NULL )
    {
        cout << "Could not get working directory!" << endl;
    }
    // skonvertujme char* na string, s tym sa nizsie bude lahsie pracovat
    stringstream ss;
    string workingDirectory;
    ss << ch;
    ss >> workingDirectory;

    cout << workingDirectory << endl;
    cin.get();
    cin.get();
C:\Users\Richard\Documents\Visual Studio 2010\Projects\Client\Debug
而不是实际的工作目录:

    char* ch;
    if( (ch = _getcwd( NULL, 0 )) == NULL )
    {
        cout << "Could not get working directory!" << endl;
    }
    // skonvertujme char* na string, s tym sa nizsie bude lahsie pracovat
    stringstream ss;
    string workingDirectory;
    ss << ch;
    ss >> workingDirectory;

    cout << workingDirectory << endl;
    cin.get();
    cin.get();
C:\Users\Richard\Documents\Visual Studio 2010\Projects\Client\Debug
似乎ti在一个空格后就可以切割所有东西

即使路径中有空格,如何才能正确获取工作目录?

只需替换以下内容:

stringstream ss;
string workingDirectory;
ss << ch;
ss >> workingDirectory;
只要替换这个:

stringstream ss;
string workingDirectory;
ss << ch;
ss >> workingDirectory;
使用
getline(ss,工作目录)

发生这种情况的原因是
使用
getline(ss,workingDirectory)


发生这种情况的原因是
操作符在第一个空格处停止。尝试使用stringstream操作,而不是stringstream操作

string workingDirectory(ch);

>
操作员在第一个空格处停止。尝试使用stringstream操作,而不是stringstream操作

string workingDirectory(ch);

如果您真的想使用您的解决方案(这是一种过度杀伤力),请使用io操纵器,如下所示:

ss >> noskipws >> workingDirectory;

如果您真的想使用您的解决方案(这是一种过度杀伤力),请使用io操纵器,如下所示:

ss >> noskipws >> workingDirectory;

为什么要使用字符串流?为什么要使用字符串流?