我有一个代码可以读取目录中的所有.txt文件。然后用户将选择他/她想要查看的.txt文件。
如果我删除评论中的代码"开始阅读文件"我的代码有效。但是,如果它包含在我的代码中,则它不起作用并显示错误" 无法将参数1转换为' void' to' const char *' "
我不知道我的代码有什么问题。我认为是因为我使用了这个...
ifstream myfile(get_txt(0,select,0));
而不是
ifstream myfile("example.txt");
任何可以帮助我的人?继承我的代码..
#include <iostream>
#include <io.h>
#include <time.h>
#include <string>
#include <fstream>
using namespace std;
string Chop(string &str){
string res = str;
int len = str.length();
if (str[len - 1] == '\r'){
res.replace(len - 1, 1, "");
}
len = str.length();
if (str[len - 1] == '\n'){
res.replace(len - 1, 1, "");
}
return res;
}
void DumpEntry(_finddata_t &data){
string createtime(ctime(&data.time_create));
if ((data.attrib & _A_SUBDIR) == _A_SUBDIR){
cout << "[" << data.name << "]" << endl;
}
else{
cout << data.name << endl;
}
}
void get_txt(int num, int ind, int all){
int ctr=1;
_finddata_t data;
int ff = _findfirst ("*.txt*", &data);
if (ff != -1){
int res = 0;
while (res != -1){
if(num==1){
cout << ctr << ". ";
DumpEntry(data);
}
else if(ctr==ind){
DumpEntry(data);
}
res = _findnext(ff, &data);
ctr++;
}
_findclose(ff);
if(all==1){
cout << ctr-1;
}
}
}
int main(){
int ctr = 0, select;
get_txt(1,0,0);
cout << "Select from 1-"; get_txt(0,0,1); cout << " files: ";
cin >> select;
get_txt(0,select,0);
//START READING FILE
string line;
ifstream myfile(get_txt(0,select,0));
if (myfile.is_open()){
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
else{
cout << "Unable to open file";
}
// END READING FILE
system("pause");
return 0;
}