题
我是新的C ++和我与dirent.h头试验,以操纵目录条目。下面的小应用程序编译但之后你pukes柔顺目录名。有人可以给我一个提示?的int退出是有提供一个while循环。我在试图隔离我的问题除去循环。
谢谢!
#include <iostream>
#include <dirent.h>
using namespace std;
int main()
{
char *dirname = 0;
DIR *pd = 0;
struct dirent *pdirent = 0;
int quit = 1;
cout<< "Enter a directory path to open (leave blank to quit):\n";
cin >> dirname;
if(dirname == NULL)
{
quit = 0;
}
pd = opendir(dirname);
if(pd == NULL)
{
cout << "ERROR: Please provide a valid directory path.\n";
}
return 0;
}
解决方案
如果您使用C ++,不使用的char *或阵列,使用的std :: string:
#include <string>
....
string dirname;
cout<< "Enter a directory path to open (leave blank to quit):\n";
getline( cin, dirname );
if ( dirname == "" ) {
exit(1);
}
....
pd = opendir(dirname.c_str() );
其他提示
变化:
char *dirname = 0;
为:
char dirname[PATH_MAX] = "";
不隶属于 StackOverflow