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中的绝对路径中包含驱动器字母吗?