QT ofstream 使用变量作为路径名
QT ofstream use variable as a path name
我正在尝试制作一个接受 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);
}
当我使用 "bin\dial.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();
}
我正在尝试制作一个接受 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);
}
当我使用 "bin\dial.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();
}