【问题标题】:File open failure! reading from a file, c++, xcode文件打开失败!从文件中读取,c++,xcode
【发布时间】:2016-09-21 02:47:37
【问题描述】:

我在从 C++ 问题中读取文件时遇到问题。请在下面找到我的代码并告诉我您的想法。我不断收到“文件打开失败!”

问题:

编写一个程序,生成一个条形图,显示过去 100 年中中西部小镇 Prairieville 以 20 年为间隔的人口增长情况。程序应从文件中读取 1900、1920、1940、1960、1980 和 2000 年的人口数据(四舍五入到最接近的 1000 人)。对于每一年,它应该显示日期和一个由每 1000 人一个星号组成的栏。例如,让我们使用 3000、7000、10000、25000、29000 和 30000。

以下是图表如何开始的示例:

大草原人口增长

(每个*代表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;
}

【问题讨论】:

  • 您是否尝试将完整的系统路径添加到您的文件中?
  • 您能否就完整系统路径的含义提出建议?

标签: c++ xcode


【解决方案1】:

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

Xcode > 首选项 > 位置

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

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

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

【讨论】:

  • 非常感谢!这非常有用。是的!在我将 People.txt 放入可执行文件的文件夹后,它就起作用了。欣赏它
【解决方案2】:

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

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

【讨论】:

  • 谢谢!这真的很有用。
【解决方案3】:

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

猜你喜欢
  • 2014-05-05
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多