前提・実現したいこと
オンラインコースでC++の勉強を始めた初心者です。
10人分の顧客のデータ(年齢、性別、収入)が書かれたテキストファイル(dev_people.txt)を読み込み、ユーザーが入力した任意の条件(年齢、収入20,000ドル以上50,000ドル以下、など)に合った顧客を抽出するマーケティングプログラムを作るという課題に挑戦しています。
ですが、はじめに提供されるスターターコードを直す以前に、まずテキストファイルを読み込むことができずに困っています。
発生している問題・エラーメッセージ
コードをXcodeでコンパイルしても、下記のメッセージが出てテキストファイルを読み込むことがでいません。
Usage: [EXECUTABLE FILE] [TEXT DATA FILE], e.g. myprog.exe dev_people.txt Program ended with exit code: 1
該当のソースコード
#include <iostream> #include <fstream> #include <vector> #include <string> using namespace std; // Define a Person class, including age, gender, and yearlyIncome. class Person { public: Person(); void Print(); void SetData(int a); // FIXME Also set gender and yearly income int GetAge(); private: int age; string gender; int yearlyIncome; }; // Constructor for the Person class. Person::Person() { age = 0; gender = "default"; yearlyIncome = 0; return; } // 他の関数など // Get a filename from program arguments, then make a Person for each line in the file. bool ReadPeopleFromFile(int argc, char* argv[], vector<Person> &people) { Person tmpPrsn; ifstream inFS; int tmpAge = 0; string tmpGender = ""; int tmpYI = 0; if (argc != 2) { cout << "\nUsage: [EXECUTABLE FILE] [TEXT DATA FILE], e.g. myprog.exe dev_people.txt" << endl; return true; // indicates error } cout << "Opening file " << argv[1] << ".\n"; inFS.open(argv[1]); // Try to open file if (!inFS.is_open()) { cout << "Could not open file " << argv[1] << ".\n"; return true; // indicates error } while (!inFS.eof()) { inFS >> tmpAge; inFS >> tmpGender; inFS >> tmpYI; tmpPrsn.SetData(tmpAge); // FIXME Also set gender and yearly income tmpPrsn.Print(); people.push_back(tmpPrsn); } inFS.close(); cout << "Finished reading file." << endl; return false; // indicates no error } int main(int argc, char* argv[]) { vector<Person> ptntlCstmrs; bool hadError = false; int ageLowerRange = 0; int ageUpperRange = 0; hadError = ReadPeopleFromFile(argc, argv, ptntlCstmrs); if( hadError ) { return 1; // indicates error } // その他main関数 return 0; }
試したこと
・コマンドラインツールがXcodeにダウンロードされていることは確認済みです。
・dev_people.txtをexeファイルと同じフォルダに入れました。
exeファイルのパス : /Users/ユーザー名/Library/Developer/Xcode/DerivedData/07_MarketingSoftware-dqcujycyvablckbmijqyouhnanyx/Build/Products/Debug/07_MarketingSoftware
カレントディレクトリもこのDebugディレクトリを示しており、同じディレクトリにテキストファイルがあるのに、なぜ読み込めないのかわかりません。。
初めての質問で不足情報もあるかもしれませんが、よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
macOS Catalina Version 10.15.6
Xcode Version 11.5 (11E608c)
Xcode Command Line Tools 11.5 11E608C
回答1件
あなたの回答
tips
プレビュー