C++ 有没有办法将字符串写入文件?

C++ 有没有办法将字符串写入文件?,c++,windows,C++,Windows,我试图将字符串写入文件,但我不知道如何操作,我尝试在我的randomString()string函数中使用wstring而不是string,以及其他仅将字符串写入文件的方法 if条件是检查是否创建了文件,如果是,则写入文件 fopen用于打开文件,path1变量是指向我的文件的路径,“w”等于write randomString()是一个字符串函数 char buffer[100] = { randomString() }; FILE* file; file = fopen(path1, "

我试图将字符串写入文件,但我不知道如何操作,我尝试在我的randomString()string函数中使用
wstring
而不是
string
,以及其他仅将字符串写入文件的方法

if
条件是检查是否创建了文件,如果是,则写入文件

fopen
用于打开文件,
path1
变量是指向我的文件的路径,
“w”
等于write

randomString()是一个字符串函数

char buffer[100] = { randomString() };

FILE* file;

file = fopen(path1, "w");

if (file) {

    fwrite(buffer, sizeof(char), sizeof(buffer), file);
    fclose(file);
}

return;

如果您正试图使用
fwrite
将字符串的内容打印到文件中,则需要执行以下操作

std::string str = randomString();

if ( file ) {
    fwrite( str.c_str(), sizeof( char ), str.size(), file );
    fclose( file );
}

由于
fwrite
期望第一个参数为
void*
,因此
std::string
不兼容;但是,一个
char*
是无效的。通过在字符串上调用
.c_str()
,您将有一个
char*
可以使用。第二个参数是类型的大小,对于
std::string
而言,它是
char
,因此
sizeof(char)
给出了大小(即1)。第三个参数是count(要写入的字符数),可以从
str.size()

轻松获取,如果您使用的是新的ish编译器,可以尝试使用

#包括
#包括
#包括
名称空间fs=std::filesystem;
int main(){
auto directoryToWriteTo=fs::current_path();//返回一个fs::path对象
std::ofstream fileStream(directoryToWriteTo.string()+“/nameOfYourFile.txt”);
if(fileStream.is_open())

您已经看过fileStream。有一个例子是将
fwrite
与字符数组一起使用。另外,您似乎有
size
count
参数向后。另外,您不分配
数据
任何值,您只分配数组,所以您得到的是(某种程度上)随机。您想写入文本文件还是二进制文件?您想如何表示字符串?毕竟,字符串是二进制的,只是一个数字序列。@JaMiT表示您不需要再处理这部分,但如果您想,我将其删除。@Mr.Strings啊……好吧,我现在可能明白了。我想您的意思是“不再重要”,而不是“重要”。@JaMiT是的,我的英语很差……你能展示一下你如何使用
文件系统
来写入文件吗?回答得很好,ChrisMM,我明白了。