質問: ### 前提・実現したいこと ど素人の質問ですみません。 ”sample.text" 5 9 -19 -4 4 89 -1 このようなテキストファイルを読み込んで、それぞれの数値を正数・負数に振り分け、正数の数・合計値、負数の数・合計数を表示するプログラムを作りたいです。 理想の結果としては、 正数:4 正合計:107 負数:3 負合計:-24 ### 発生している問題・エラーメッセージ ``` ファイルの読み込みができないし、できたとしてもどうやって数列を分割して振り分けて格納すればいいのかわかりません。 ``` ### 該当のソースコード ``` #include #include #include using namespace std; int main() { ifstream file; string num; file.open("Sample.txt"); if (file.fail()) { cout << "fail" << endl; return -1; } string str; while (getline(file, str)) { file >> str; cout << str << endl; } file.close(); return 0; } //実行結果:fail ``` ### 試したこと ネット上にあるいろんなサンプルコードを組み合わせてなんとかエラー表示をしない程度にはまとめれたんですが、ファイルが開けません。 ifstream file(“Sample.txt”); みたいなコードも試してみたんですが、そうするとSampleが定義されてません、といわれそもそも実行できません。 ### 補足情報(FW/ツールのバージョンなど) だれか助けてください。
回答: ファイルがオープンできないのはファイルの置き場所が問題であることが多い ので、まずそれを確認してください。 Windows の Visual Studio のような IDE(統合開発環境) を使っている場合 ソースファイルの場所、実行ファイルの場所、プロジェクトの場所が異なります。 sample.text の置き場所を変更するか、あるいは、"sample.text" を "c:/user/hoge/.../sample.text" などのように絶対パスにしてみるなどを 試してみてください。 ### 追記 Linux では、ファイル名の大文字と小文字は区別されます。 sample.text と Sample.text は異なるファイルです。 ファイルの拡張子が .text か、.txt かにも注意してください。