2016-05-24 23 views
1

C++の問題でファイルからの読み込みに問題があります。私のコードを見つけて、あなたの考えを教えてください。私は "ファイルオープン失敗!"ファイルオープンに失敗しました!ファイルからの読み取り、C++、xcode

問題:

は、過去100年の間に20年の間隔でPrairieville、中西部の小さな町の人口増加を示す棒グラフを生成するプログラムを書きます。プログラムは、1900年、1920年、1940年、1960年、1980年および2000年のファイルから、人口(人口1000人に近い)を読み込む必要があります。毎年、1000人ごとに1つのアスタリスクで構成される日付とバーを表示する必要があります。たとえば、のは、3000を使用してみましょう、ここで7000,10000、25000、29000および30000

は、チャートが始まるかもしれない方法の例です。

PRAIRIEVILLE人口増加

(各* 1000人を表しています)

1900 ***

1920 *******

1940 **********

// main.cpp 
// Population Chart 

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() 
{ 
    int year,population; 
    ifstream inputFile; 
    inputFile.open("People.txt"); 
    //if (inputFile.fail()) 
    if(!inputFile) 
    { 
     cout << "File open failure!"; 
    } 

    cout << "PRAIRIEVILLE POPULATION GROWTH\n" <<endl; 
    cout << "(each * represents 1000 people)\n" <<endl; 

    while (inputFile >> population) 
    { 
     for (year =1900 ; year<=2020; year += 20) 
     { 
      cout<< year; 
      for (int i = 1; i <= population/1000; i++) 
      { 
       cout<<"*"; 
      } 
      cout<< endl; 
     } 
    } 

    inputFile.close(); 

    return 0; 
} 
+1

あなたのファイルに完全なシステムパスを追加しようとしましたか? –

+0

完全なシステムパスの意味を教えてください。 – asaber

答えて

0

あなたが質問に付けたタグから、あなたはXcodeを使用していると思いますか?あなたはXcodeが実行可能ファイルを出力する場所を知る必要があり、People.txtファイルは実行可能ファイルと同じフォルダの下に置く必要があります。 Xcodeの実行可能ファイルを置く場所Xcodeで、後藤

のXcode>プリファレンス>拠点

"得られたデータ" の下に示されたパス、です。通常〜/ Library/Developer/Xcode/DerivedDataです。

ここには、プロジェクトのフォルダがたくさんあります。このプロジェクトに対応するフォルダに移動し、Build/Products/Debugに移動して、実行可能ファイルを見つけます。あなたができることはPeople.txtをそこに置くことです。

また、 "People.txt"ファイルのフルパスをinputFile.open()メソッドに追加することもできます。

+0

ありがとう!それは非常に便利でした。うん!これは、実行可能ファイルを持つフォルダにPeople.txtを置いた後に動作しました。ありがとう! – asaber

0

ifstream open()はエラーが発生した場合にerrnoを設定します。だから、出力に失敗の理由をその文字列表現を取得することがあります。

cout << "File open failure:" << strerror(errno); 
+0

ありがとう!それは本当に便利です。 – asaber

0

このポストは非常に便利New to Xcode can't open files in c++?問題が解決されました。ファイルが生成された実行可能ファイルを含むフォルダにないことがわかります。ありがとう:)

+0

あまりにも役に立ちましたhttps://github.com/jsquared21/StartingOutCPP/blob/master/PC_5/PC_5_23.cpp – asaber

関連する問題