【问题标题】:Why isn't this fstream command working?为什么这个 fstream 命令不起作用?
【发布时间】:2014-04-03 21:55:48
【问题描述】:

这是代码。

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

int main(int argc, const char * argv[])
{
    ifstream myfile;
    myfile.open("numbers.txt");

    if (myfile.is_open()){
        cout <<" okay to proceed" << endl;
    } else {
        cout<< "error finding file" <<endl;
    }
}

该文件的名称与程序完全相同,并且位于与程序相同的文件夹中。

我做错了什么? is_open() 检查失败 >_

编辑:已解决。在product-scheme-options下找到工作目录

【问题讨论】:

  • 文件必须在程序执行的工作目录下,而不是程序源文件。
  • 您打开阅读了吗?
  • 你有权限读取这个文件吗?
  • 如果你使用Visual Studio,它默认在项目源目录(.vcproj)中执行,所以它会在那里寻找文件。
  • 这是一个包含 10 个数字的简单文本文件。我有权阅读它。 @hmjd 我不太清楚你的意思。 (新手时刻)如何更改工作目录或找出它在 xcode 中的位置?

标签: c++ fstream


【解决方案1】:

原因很多: 1. No r 权限(无法读取文件) 2.“numbers.txt”在其他目录中,没有一个应用程序启动 ... 在 myfile.open("FULLPATH/numbers.txt"); 中使用完整路径只是为了确保您打开了正确的文件。 比检查访问权限(取决于操作系统)

【讨论】:

  • 谢谢!完整路径可能比强制更改工作目录更好。
  • 记下只是为了测试。
  • 一般情况下,类 UNIX 首选相对路径。对于 WIN,完整路径总是更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 2020-05-29
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2019-03-25
相关资源
最近更新 更多