c++ - Linux 上的 file.open() 无法打开我的文件,如何解决?

标签 c++ linux ifstream

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

int main()
{
    ifstream file;
    file.open("./cp.txt");
    if(file.good())
    {
        cout << "done!";
    }
    else
    {
        cout << "fail";
    }
    return 0;
}

为什么我的代码不能cp.txt文件?它在项目文件夹中。我正在使用 gnu/linux。 打开我的意思是程序将在一些文本编辑器中打开它,即:。叶垫

最佳答案

as open i mean the program will open it in some text editor i.e:. leafpad

这不会发生。

当您打开 ifstream 对象时,这意味着文件已打开供该对象读取,并不意味着文本编辑器已启动并显示该文件!

也许你想要的是:

system("leafpad cp.txt");

system 函数运行另一个命令,在本例中它运行命令以启动 leafpad 并将您的文件作为参数。

请注意,将在您程序的当前工作目录 中搜索该文件,这与您的“项目目录”不同。如果您在程序运行时不知道当前工作目录是什么,那么您将需要提供文件的绝对路径,而不是像 cp.txt

这样的相对路径

关于c++ - Linux 上的 file.open() 无法打开我的文件,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541036/

相关文章:

c - 最后一个struct dirent中字段d_off的含义

C++ ifstream 在不存在文件时工作,在存在文件时不工作

c++ - facet 的 get_time 不断失败

c++ - 连接超时与 Alarm()

c++ - 类范围内的变量模板

c++ - 在C++中将破折号分隔的文件中的数字插入BST

c++ - 如何从 txt 文件 c++ 中提取括号之间的数字?

c++ - 用 C++ 实现 Mongoose 服务器

Pythonbrew 无法构建 python 2.6

linux - 我想将 Bash 脚本的所有命令行参数存储到单个变量中