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;
为什么要使用字符串流?为什么要使用字符串流?