以前に正常に読み取ったファイルを読み取ろうとしています。ライブラリを介してそれを読んでいて、そのままライブラリに送信しています(つまり、「myfile.txt」)。私はファイルがworking/currentディレクトリから読み込まれることを知っています。
Current/workingディレクトリが何らかの形で変更されたと思います。現在/作業中のディレクトリを確認するにはどうすればよいですか?
あなたがvisual-c ++タグを追加したので、私はそれを行うために標準的なwindows関数を提案します。 GetCurrentDirectory
使用法:
TCHAR pwd[MAX_PATH];
GetCurrentDirectory(MAX_PATH,pwd);
MessageBox(NULL,pwd,pwd,0);
Boost filesystem ライブラリはクリーンなソリューションを提供します
current_path()
使用する - _getcwd
現在の作業ディレクトリを取得します。
少し前に私がプラットフォームにとらわれない答えを示します。
Cの「getcwd」関数からstd :: stringを返す方法
かなり長いですが、Nice C++インターフェースを使用して、想定されていることを正確に実行します(つまり、正確な方法ではなく文字列を返しますか?-(const
)char*
)。
getcwd
の廃止に関するMSVC警告をシャットダウンするには、
#if _WIN32
#define getcwd _getcwd
#endif // _WIN32
このコードはLinuxおよびWindowsで機能します。
#include <stdio.h> // defines FILENAME_MAX
#include <unistd.h> // for getcwd()
#include <iostream>
std::string GetCurrentWorkingDir();
int main()
{
std::string str = GetCurrentWorkingDir();
std::cout << str;
return 0;
}
std::string GetCurrentWorkingDir()
{
std::string cwd("\0",FILENAME_MAX+1);
return getcwd(&cwd[0],cwd.capacity());
}