QT ofstream使用变量作为路径名

QT ofstream use variable as a path name

本文关键字:路径名 变量 ofstream QT      更新时间:2023-10-16

我试图使一个函数需要QString以及int。将QString变量转换为ofstream的文件名,然后取整数并将其放入文件中。到目前为止,我已经设法采用一个恒定的文件名,如"filename .dat",并在其中写入一个变量。然而,当我尝试使用QString像这样:

void write(const char what,int a){
    std::ofstream writefile;
    writefile.open("bin\" + what);
    writefile << a;
    writefile.close();
}

我得到一个错误

void write(const char,int)': cannot convert argument 1 from 'const char [5]' to 'const char

这个函数调用write();

void Server::on_dial_valueChanged(int value)
{
    write("dial.dat",value);
}

当我使用"bindial.dat"而不是将"bin"与字符串组合时,它工作得很好。ofstream.open ();使用"const char*"

我已经尝试了所有的文件类型,所以它们可能不匹配我的描述

问题是-有人知道如何结合"bin"和QString并使其与ofstream一起工作吗?我花了很多时间在谷歌上搜索,但仍然无法使用。谢谢!欢迎有任何建议

void write(const char what,int a)是错误的,因为你只传递一个字符到函数,你应该有void write(const char* what,int a)传递指针到cstring开始。

你也想连接两个cstring,在c++中你不能像在其他语言中那样做,但是你可以使用std::string来做你想做的。

试试这个

#include <string>
void write(const char* what,int a){
    std::ofstream writefile;
    std::string fileName("bin\");
    fileName+=what;
    writefile.open(fileName.c_str());
    writefile << a;
    writefile.close();
}