2017-11-07 17 views
-2

私は、ファイル(「file.txt」と呼ぶ)をフォルダ/folder/where/the/file/isに持っています。 そしてこのフォルダには、私がやる場合など、$FOLDERに輸出されています:エクスポートされたフォルダからファイルを読み取る

echo $FOLDER、私が得た:folder/where/the/file/is

は今、私は、ファイルが存在するかどうかをテストします。

だから、私はこれがName_finput = "/folder/where/the/file/is/file.txt"場合は動作しますが、ないName_finput=$FOLDER/file.txt

場合、それはフォーム$FOLDER/file.txtを保つことによって動作するために方法はあり

ifstream ifile(Name_finput); 

    if(!ifile.good()){ 
    cout << "File doesn't exist !" << endl; 
    return; 
    } 

を試してみましたか? コンパイラは$FOLDER/folder/where/the/file/isと解釈していないようです。

+0

'$ FOLDER'はC++のものではありません。必要なのは 'std :: getenv()'です。 – DimChtz

+0

'getenv()'のルックアップ。 – user0042

答えて

0

$FOLDERは有効なC++コードではありません。環境変数にアクセスするには、std::getenv()を使用する必要があります。あなたのコードは次のようになります:

#include <iostream> 
#include <cstdlib> 
#include <fstream> 

int main() { 

    std::ifstream ifile; 

    if (const char* e = std::getenv("FOLDER")) { 

     ifile.open(std::string(e) + std::string("/file.txt")); 

     if (!ifile.is_open()) { 

      std::cout << "File doesn't exist !" << std::endl; 

     } else { 

      // Do-stuff with the file 

     } 

    } 

    return 0; 
} 
関連する問題