promotion image of download ymail app
Promoted

C++ *** 其他語言我看不懂 請用C++ ***?

我想開啟檔案的話

普通不是

ifstream read(XXX.txt);

這樣寫對吧

但是那個XXX 我想要改成讓它自動抓取 所有名字帶有.txt 的檔案

意思就是說 一直掃.txt

有就開啟

沒有就break

反正就教我怎麼開啟檔案就好

不要是絕對的檔案名稱

任何名字.txt 這樣子 我要打開這樣

2 個解答

評分
  • 阿平
    Lv 4
    3 年前
    最佳解答

    windows版

    #include<cstdlib>

    #include<iostream>

    #include<windows.h>

    using namespace std;

    int main(){

    WIN32_FIND_DATA FindFileData;

    HANDLE hFind;

    hFind=FindFirstFile("*.txt",&FindFileData);

    if(hFind==INVALID_HANDLE_VALUE){

    cout<<"FindFirstFile failed"<<endl;

    exit(EXIT_FAILURE);

    }

    else{

    cout<<FindFileData.cFileName<<endl;

    while(FindNextFile(hFind,&FindFileData)!=0)

    cout<<FindFileData.cFileName<<endl;

    FindClose(hFind);

    }

    return 0;

    }

    linux版

    #include<sys/types.h>

    #include<dirent.h>

    #include<sys/stat.h>

    #include<unistd.h>

    #include<iostream>

    #include<cstring>

    #include<cstdlib>

    using namespace std;

    int main(){

    DIR *dirStream;

    struct dirent *entry;

    struct stat information;

    dirStream=opendir(".");

    if(dirStream==NULL){

    cout<<"opendir error"<<endl;

    exit(EXIT_FAILURE);

    }

    entry=readdir(dirStream);

    while(entry!=NULL){

    stat(entry->d_name,&information);

    if(S_ISREG(information.st_mode) && strstr(entry->d_name,".txt")!=NULL)

    //if(entry->d_type==DT_REG && strstr(entry->d_name,".txt")!=NULL)

    cout<<entry->d_name<<endl;

    entry=readdir(dirStream);

    }

    return 0;

    }

    • Commenter avatar登入以對解答發表意見
  • 感恩你

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。