如何解决如果我想将它拆分成单词,我如何使ifstream :: get工作?
| 这是我的代码。在我叫ѭ0the的那一行上,我不断出错。我正在尝试使用定界符:char* spamdir = argv[1];
char* hamdir = argv[2];
char* dictname = argv[3];
ofstream* outp = new ofstream;
ifstream* read = new ifstream;
DIR *sdp = opendir(spamdir);
struct dirent *directory;
char* word = (char*)malloc(256);
while(directory = readdir(sdp))
{
cout << directory->d_name << endl;
char* name = directory->d_name;
char* filepath = (char*) malloc(100);
strcpy(filepath,\"\\0\");
strcat(filepath,spamdir);
strcat(filepath,\"/\");
strcat(filepath,name);
read->open(filepath);
if(read->good())
cout <<\"sweet\\n\";
while(read->good())
{
read->get(word,255,\" \");
cout << word << endl;
}
read->close();
free(filepath);
}
解决方法
您没有告诉我们错误是什么,但是我的猜测是,问题在于
std::istream::get()
中的定界符参数必须为char
,但是您正在传递字符串。尝试使用\' \'
代替\" \"
。
一种更简单的方法是使用std::getline()
,如下所示:
std::string word;
while (std::getline(*read,word,\' \')) {
std::cout << word << std::endl;
}
每当您在C ++程序中使用malloc
时,您可能都在艰难地工作。
(顺便说一句,每当您有编译器错误消息时,最好将这些消息包括在您的问题中。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。