读取txt文件c ++时出错

时间:2013-11-08 20:54:28

标签: c++ stream

我有这个代码,假设读取一个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。我试图将fileName设置为硬编码,但这也无效。 我的代码出了什么问题?

这是项目:

enter image description here

3 个答案:

答案 0 :(得分:1)

这是一份清单:

  1. 您是否有权阅读/访问该文件?
  2. 您是该文件的所有者吗?(Linux)
  3. 您是否从可执行文件中提供了正确的路径,相对或绝对路径?
  4. 如果对这些问题的回答是否定的,那么这就是问题所在,而不仅仅是“找不到文件”错误。

    - 编辑 -

    @VladIoffe我在那里看到的可执行文件是qustion2,你必须给出的相对路径是../input.txt而不是input.txt

答案 1 :(得分:0)

您应该使用fileName的绝对路径。

答案 2 :(得分:0)

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