gpt4 book ai didi

c++ - 在桌面上用c++创建文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:39 27 4
gpt4 key购买 nike

我知道要在 C++ 中创建一个文件,我们使用以下代码

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream out;
out.open("exemple.txt");
return 0;
}

我的问题如下,我想在桌面或其他目录中创建 example.txt 文件。为了简化它,让我们现在使用桌面。

请帮我看看怎么做?

像这样?

out.open("example.txt","C:\Users\David\Desktop");

最佳答案

您的代码的主要问题是“\”是 C/C++ 中的转义符。

所以当你输入字符串时:"C:\Users\David\Desktop" 斜杠转义了下一个字符,因此它们实际上不是字符串的一部分,可执行文件得到的是"C:UsersDavidDesktop" 为了弥补这一点,有两种选择:

  • 使用转义序列作为斜杠 '\\' 从而得到:"C:\\Users\\David\\Desktop"
  • 或使用'/'字符分隔路径中的目录。
    • 我个人更喜欢此选项,因为它现在可以在所有现代操作系统之间移植。 (赢/Linux/MAC)

您的次要问题是您使用的 open 不正确。只需将路径名称指定为 1 个长字符串(这称为绝对路径)。就个人而言,我更喜欢向构造函数提供文件名,而不是显式调用 open(但这只是个人偏好)。

#include <fstream>
int main()
{
std::ofstream out1("C:\\Users\\David\\Desktop\\exemple1.txt");

std::ofstream out2("C:/Users/David/Desktop/exemple2.txt");
}

小记。硬编码桌面目录的路径不是好的做法。您正在将您的应用程序与操作系统版本如何布局文件系统紧密耦合。每个操作系统通常都提供了一种如何查找用户目录的技术,请参阅您的操作系统文档以了解更多详细信息(或在 StackOverflow 上提出另一个问题)。

另请注意,boost 提供了一个文件系统类来抽象跨所有主要操作系统的文件系统。了解它的工作原理比将文件表示为字符串更有用;当您构建复杂路径(例如带空格的路径)时,字符串表示可能会稍微容易出错。嵌入其中的字符。

关于c++ - 在桌面上用c++创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3359627/

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