Я раньше не использовал dirent.h
. Я использовал istringstream для чтения текстовых файлов (в единственном числе), но вам нужно было попробовать пересмотреть программу для чтения в нескольких текстовых файлах в каталоге. Здесь я попытался реализовать dirent, но он не работает.Новое на <dirent.h>, пытаясь получить доступ к данным в каталоге
Возможно, я не могу использовать его со строкой? Пожалуйста, порекомендуйте.
Я достал пушистый материал, который я делаю со словами для удобочитаемости. Это был отлично работает для одного файла, пока я не добавил материал dirent.h.
#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream> // for istringstream
#include <fstream>
#include <stdio.h>
#include <dirent.h>
void main(){
string fileName;
istringstream strLine;
const string Punctuation = "-,.;:?\"'[email protected]#$%^&*[]{}|";
const char *commonWords[] = {"AND","IS","OR","ARE","THE","A","AN",""};
string line, word;
int currentLine = 0;
int hashValue = 0;
//// these variables were added to new code //////
struct dirent *pent = NULL;
DIR *pdir = NULL; // pointer to the directory
pdir = opendir("documents");
//////////////////////////////////////////////////
while(pent = readdir(pdir)){
// read in values line by line, then word by word
while(getline(cin,line)){
++currentLine;
strLine.clear();
strLine.str(line);
while(strLine >> word){
// insert the words into a table
}
} // end getline
//print the words in the table
closedir(pdir);
}
Обратите внимание, что 'void main()' не является одним из допустимых прототипов для основной программы в C++ (и является нестандартным в C). –
привет, мне очень жаль, я не знал об этом! Вернулись и исправили это. Спасибо за головы :) –