C ++从目录中读取txt文件

时间:2015-02-21 12:41:35

标签: c++

我有一个代码可以读取目录中的所有.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;
}

0 个答案:

没有答案