前提・実現したいこと
ここに質問の内容を詳しく書いてください。
やさしいC++ 第5版16章の問題です。
コマンドライン引数を使って、ファイル名からコードを実行したいのですが、ファイルオープンができないエラーが出ます。
発生している問題・エラーメッセージ
コマンドプロンプロ画面です↓ C:\Users\14sc064\Desktop\practice\Debug>practice text3.txt ファイルをオープンできませんでした。
該当のソースコード
#include <fstream> #include <iostream> #include <iomanip> using namespace std; int main(int argc, char* argv[]) { if (argc != 2) { cout << "パラメータが違います\n"; return 1; } ifstream fin(argv[1]); if (!fin) { cout << "ファイルをオープンできませんでした。\n"; return 1; } const int num = 8; int test[num]; for (int i = 0; i < num; i++) { fin >> test[i]; } int max = test[0]; int min = test[0]; for (int j = 0; j < num; j++) { if (max < test[j]) max = test[j]; if (min > test[j]) min = test[j]; cout << "No." << j + 1 << setw(5) << test[j] << '\n'; } cout << "最高点は" << max << "です。\n"; cout << "最低点は" << min << "です。\n"; fin.close(); return 0; } test3.txtには以下のコメントが書かれています↓ 80 68 22 33 56 78 33 56
試したこと
プログラムをビルド後にコマンドプロンプトを出してpractice text3.txtを実行
text3.txtはpracticeと同じ階層に用意してあります。
C:\Users\14sc064\Desktop\practice←ココ\Debug>practice text3.txt
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
C:\Users\14sc064\Desktop\practice←ココ\Debug
とありますが、ファイルが置いてあるのは C:\Users\14sc064\Desktop\practice\Debug でしょうか?
C:\Users\14sc064\Desktop\practice\Debug\text3.txt にファイルが存在しているか確認してください。(つまり、exe と同じ階層)
そしてそのとき、Visual Studio 使ってるなら IDEから実行 じゃなく コマンドラインから"そのdir.で実行"すべし。
exeと同じ階層にtest3.txtが入っていませんでした!
コマンドプロンプロから実行したらできました!
ありがとうございます。
回答2件
あなたの回答
tips
プレビュー