首页 > 解决方案 > ifstream 没有明显的原因不读取文件

问题描述

我为我的班级编写了一个非常简单的程序,虽然它编译没有问题,但我在 cout 上没有输出。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {

    ifstream fl("data.txt");    
    string s;

    for(int i=0;i<3;i++){
        fl>>s;
        cout<<s;
    }
    return 0;
}

data.txt与 位于同一文件夹中main.cpp

标签: c++ifstreamgetline

解决方案


data.txt与在同一个文件夹中main.cpp

...这不一定与您运行程序时所在的目录相同。

根据 IDE,您可能位于二进制目录、发布目录、调试目录或一百个不同位置中的任何一个 :-)

您通常可以通过简单地执行以下操作之一来找出位置:

system("pwd")
system("cd")
system("cmd /c cd")

在您的代码中,然后查看它的输出。我不确定cd它本身是否会起作用,因为它可能是一个内部cmd命令。

然后你要么必须确保数据文件那个地方,要么使用一个可以正确找到它的路径名。即使在 IDE 中构建时,我也倾向于从命令行运行我的可执行文件,以确保我在正确的位置。


推荐阅读