文件打开失败!从文件中读取,c ++,xcode

时间:2016-05-24 04:10:50

标签: c++ xcode

我在读取c ++问题中的文件时遇到问题。请在下面找到我的代码并告诉我你的想法。我一直在"文件打开失败!"

问题:

编写一个程序,生成一个条形图,显示中西部一个小镇Prairieville的人口增长,过去100年间隔20年。该程序应该从文件中读取1900年,1920年,1940年,1960年,1980年和2000年的人口数字(最接近1000人)。对于每一年,它应显示日期和一个由每1000人组成一个星号的栏。例如,让我们使用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;
}

3 个答案:

答案 0 :(得分:0)

从您提出的问题标签,我认为您正在使用Xcode,对吗?您需要知道Xcode在哪里输出可执行文件,并且您的People.txt文件需要放在与可执行文件相同的文件夹下。在Xcode中,转到

Xcode&gt;偏好&gt;位置

“派生数据”下显示的路径是Xcode放置可执行文件的地方。它通常是〜/ Library / Developer / Xcode / DerivedData。

在那里,您可能会发现很多项目文件夹。进入对应于这个项目的文件夹并转到Build / Products / Debug,然后你会找到你的可执行文件。你能做的就是把你的People.txt放在那里。

或者您可以将“People.txt”文件的完整路径添加到inputFile.open()方法。

答案 1 :(得分:0)

ifstream open()在失败时设置errno。所以你可以获得它的字符串表示来输出失败的原因:

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

答案 2 :(得分:0)

此帖非常有用New to Xcode can't open files in c++?此问题现已解决。原来该文件不在包含生成的可执行文件的文件夹中。谢谢:))