0

我有这个代码假设读取一个 txt 文件。但由于某种原因,我总是*File not found觉得这意味着fileIn.fail()失败......

#include <iostream>
#include <string.h>
#include <fstream>
#include <sstream>
#include <stdio.h>


using namespace std;

int main ()
{
    string fileName;
    ifstream fileIn;
    bool x;

    cout << "enter file name \n";
    cin  >> fileName;

    fileIn.open(fileName);

    if(fileIn.fail())
    {
        cerr << "* File not found";
        return true;
    }

该文件与我的 main.cpp 文件位于同一文件夹中并命名为 input.txt。我试图设置文件名硬编码,但这也没有用。我的代码有什么问题?

这是项目:

在此处输入图像描述

4

3 回答 3

1

Here is a checklist:

  1. Do you have permissions to read/access the file?
  2. Are you the owner of the file?(Linux)
  3. Are you giving the correct path, relative or absolute from the executable?

If the answer to any of these is a no, then that is where the problem lies, not just "file not found" error.

--EDIT--

@VladIoffe the executable I see there, is qustion2 and the relative path you have to give is ../input.txt and not input.txt

于 2013-11-08T20:59:14.437 回答
0

Absoulut 路径将始终有效。但我讨厌完整路径,我更喜欢相对路径,原因很简单:代码更便携。如果您在可执行文件的同一路径中使用 input.txt 运行程序,它将起作用。但是当您使用 IDE 时,您必须在 IDE 设置中设置当前目录。

于 2013-11-08T21:18:33.020 回答
0

您应该使用文件名的绝对路径。

于 2013-11-08T21:01:26.677 回答