在Qt项目中获取此错误;
C:\Users\Seb\Desktop\SDIcw2\shipHandler.cpp:20: error: no matching function for call to 'std::basic_ifstream<char>::open(QString&)'
infile.open(qstr);
^
在此构造函数中发生;
SDI::shipHandler::shipHandler(std::string fileName)
{
QString qstr = QString::fromStdString(fileName.c_str());
std::string line;
std::ifstream infile;
infile.open(qstr);
while(!infile.eof())
{
getline(infile,line);
shipHandler::lineParse(line);
}
infile.close();
}
我通过;
在另一个线程中创建初始化类SDI::shipHandler sh("ships.txt");
只是解决了Qt上的一个问题,它带来了另一个问题。真的很生气,我讨厌在这里张贴很多东西。只是试图传递文件名打开,在视觉工作室工作,但移动到这里添加gui。非常感谢帮助
答案 0 :(得分:1)
转换为QString只会导致问题。
如果您直接使用fileName
,则应解决编译器错误:
SDI::shipHandler::shipHandler(std::string fileName)
{
std::string line;
std::ifstream infile;
infile.open(fileName);
...