Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在子目录中创建文本文件?_C++_Text Files_Fopen - Fatal编程技术网

C++ 如何在子目录中创建文本文件?

C++ 如何在子目录中创建文本文件?,c++,text-files,fopen,C++,Text Files,Fopen,我需要在程序的子目录中创建一个文本文件来写入一些数据。下面的行不起作用,文件夹未创建。即使手动创建子文件夹,也不会创建该文件。如果行中没有子文件夹,则此命令可以正常工作 文件*f; if(fopen_s(&f,“/Sandbox/OUTPUT.txt”,“w”)) 返回1;//什么也没发生 if(fopen_s(&f,“//Sandbox//OUTPUT.txt”,“w”)) 返回1;//什么也没发生 if(fopen_s(&f,“\\Sandbox\\OUTPUT.txt”,“w”)) 返回1

我需要在程序的子目录中创建一个文本文件来写入一些数据。下面的行不起作用,文件夹未创建。即使手动创建子文件夹,也不会创建该文件。如果行中没有子文件夹,则此命令可以正常工作

文件*f;
if(fopen_s(&f,“/Sandbox/OUTPUT.txt”,“w”))
返回1;//什么也没发生
if(fopen_s(&f,“//Sandbox//OUTPUT.txt”,“w”))
返回1;//什么也没发生
if(fopen_s(&f,“\\Sandbox\\OUTPUT.txt”,“w”))
返回1;//什么也没发生
if(fopen_s(&f,“\Sandbox\OUTPUT.txt”,“w”))
返回1;//什么也没发生
if(fopen_s(&f,“Sandbox/OUTPUT.txt”,“w”))
返回1;//什么也没发生
if(fopen_s(&f,“Sandbox\OUTPUT.txt”,“w”))
返回1;//创建名为“SandboxOUTPUT.txt”的文件

如何正确编码?

我想您是在Windows环境中工作的

如果
Sandbox
文件夹是当前目录的子目录,则应使用
“Sandbox\\OUTPUT.txt”
“\\Sandbox\\OUTPUT.txt”

如果它是驱动器根目录中的文件夹,请使用
“C:\\Sandbox\\OUTPUT.txt”

换句话说,反斜杠需要通过另一个反斜杠转义

如果要先创建目录,请尝试:


mkdir(“.\\Sandbox”)
mkdir(“C:\\Sandbox”)

我想您是在Windows环境中工作的

如果
Sandbox
文件夹是当前目录的子目录,则应使用
“Sandbox\\OUTPUT.txt”
“\\Sandbox\\OUTPUT.txt”

如果它是驱动器根目录中的文件夹,请使用
“C:\\Sandbox\\OUTPUT.txt”

换句话说,反斜杠需要通过另一个反斜杠转义

如果要先创建目录,请尝试:


mkdir(“.\\Sandbox”)
mkdir(“C:\\Sandbox”)

如果启用了C++17编译器,请使用。这里介绍了一些你可以用它做的事情,这些事情应该是不言自明的,但是如果有什么不清楚的地方,问一下,我会尽力澄清

#include <filesystem>
#include <fstream>
#include <iostream>

namespace fs = std::filesystem;

int main() {
    // create a path in an OS agnostic manner
    fs::path dir_path = fs::path(".") / "Sandbox";
    fs::directory_entry dir(dir_path);

    if(dir.exists()) {
        std::cout << dir << " already exists\n";
        if(dir.is_directory() == false) {
            std::cerr << "... but is not a directory\n";
            return 1;
        }
    } else {
        std::cout << "creating dir  " << dir << "\n";
        if(fs::create_directory(dir) == false) {
            std::cerr << "failed creating " << dir << "\n";
            return 1;
        }
    }
    {
        // create a path to your file:
        fs::path filename = dir_path / "OUTPUT.txt";
        std::cout << "creating file " << filename << "\n";

        std::ofstream os(filename);
        if(os)
            os << "Hello world.\n";
        else {
            std::cerr << "failed opening " << filename << " for writing\n";
            return 1;
        }
    }
}
#包括
#包括
#包括
名称空间fs=std::filesystem;
int main(){
//以操作系统不可知的方式创建路径
fs::path dir_path=fs::path(“.”/“沙盒”;
目录\条目目录(目录\路径);
if(dir.exists()){

std::cout如果你有一个启用了C++17的编译器,请利用它。这里介绍了一些你可以用它做的事情,这些事情应该是不言自明的,但是如果有什么不清楚的地方,请询问,我会尝试澄清

#include <filesystem>
#include <fstream>
#include <iostream>

namespace fs = std::filesystem;

int main() {
    // create a path in an OS agnostic manner
    fs::path dir_path = fs::path(".") / "Sandbox";
    fs::directory_entry dir(dir_path);

    if(dir.exists()) {
        std::cout << dir << " already exists\n";
        if(dir.is_directory() == false) {
            std::cerr << "... but is not a directory\n";
            return 1;
        }
    } else {
        std::cout << "creating dir  " << dir << "\n";
        if(fs::create_directory(dir) == false) {
            std::cerr << "failed creating " << dir << "\n";
            return 1;
        }
    }
    {
        // create a path to your file:
        fs::path filename = dir_path / "OUTPUT.txt";
        std::cout << "creating file " << filename << "\n";

        std::ofstream os(filename);
        if(os)
            os << "Hello world.\n";
        else {
            std::cerr << "failed opening " << filename << " for writing\n";
            return 1;
        }
    }
}
#包括
#包括
#包括
名称空间fs=std::filesystem;
int main(){
//以操作系统不可知的方式创建路径
fs::path dir_path=fs::path(“.”/“沙盒”;
目录\条目目录(目录\路径);
if(dir.exists()){

STD::你确定你想问C++,而不是C?你不需要在Windows中绝对路径中包含驱动字母吗?你确定你想问C++,而不是C?你不需要在Windows中的绝对路径中包含驱动器字母吗?