以下のコマンドを使用する場合、入力元のコンピューターのファイル (この場合は Dictionary.txt) の場所はどこですか?
int main(){
string line;
fstream file("dictionary.txt");
getline(file, line);}
通常、ファイルの場所は、ファイルを開いた時点の現在のディレクトリです。
ただし、ISO 規格自体はこれを義務付けておらず、実装に任されています。ファイルを見つけるために文字列の内容を解釈する方法を制御します。
私が見る限り、実行しているシステムによって異なります。
「その形式と有効性に関する詳細は、ライブラリの実装と実行環境によって異なります。」
通常、Windowsでは、最初に現在のディレクトリ(通常はexecのフォルダーですが、特定の関数を介して変更できます)に対して相対的にチェックするか、完全なパス(つまり、c:/ ...)を具体的に記述する場合は絶対にチェックします。
編集: 詳細については、このリンクを確認してください: How to use fstream objects with relative path?
この関連記事のようにパスを指定しない限り、開きたいテキスト ファイルは、C++ プログラム全体と同じフォルダーに存在する必要があります: Open file by its full path in C++
これは通常、コンパイルされたバイナリと同じフォルダーになります。ただし、コンパイルされたバイナリが開始されるコンテキストによって異なる場合があります。