gpt4 book ai didi

c++ - 为什么 fstream 不能在 Linux 中写入文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:50 24 4
gpt4 key购买 nike

fstream不适用于在 Linux 中写入文件,使用以下代码:

#include <iostream>                     //for console input and output
#include <fstream> //for file input and output

int main(int argc, char **argv) {
std::ofstream outFile("~/test_ws/src/data_logger/src/myFile.txt", std::ios::out | std::ios::binary);
outFile.open("~/test_ws/src/data_logger/src/myFile.txt", std::ios::out | std::ios::binary);
if(outFile.is_open()) {
outFile << "Writing whether you like it or not.\n";
std::cout << "YES!\n";
} else std::cout << "Nope!\n";
outFile.close();
}

有什么问题吗?或者,是否有另一个 C++ API 可用于在 Linux 中写入文件?

最佳答案

fstream & co。在 Linux 上工作得很好。您的代码的问题在于您使用的是 ~,它不是 C++ fstream 以及一般较低级别系统调用所识别的“真实”路径,但它通常可以在命令行中工作,因为它是由 shell 扩展的。

如果你想让你的程序执行类似shell的路径扩展,你可以调用wordexp功能;请注意,在多年的 Linux 工作经验中,我认为我不需要这样做,因为通常路径作为命令参数“来自外部”,已经由 shell 扩展了(这是一般假设,不要被打破以避免双重扩展;wordexp 在扩展路径(例如在配置文件中)时有其典型用法。

关于c++ - 为什么 fstream 不能在 Linux 中写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53824522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com