我想打开一个基于文本的外部文件,如下所示:
QFile inputFile("mytextfile.txt");
if (inputFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
..
}
inputFile.close();
}
else
{
QString errMsg;
QFileDevice::FileError err = QFileDevice::NoError;
errMsg = inputFile.errorString();
err = inputFile.error();
qDebug() << errMsg;
exit(1);
}
外部文件位置位于源代码旁边。没有任何东西可以锁定文本文件。
但我总是收到以下错误消息:No such file or directory
答案 0 :(得分:1)
源文件旁边的文件不相关。 与相关的是您运行程序时当前工作目录的内容。
cwd 取决于你如何启动程序。从命令行/ shell启动时,它将成为启动程序时所在的目录。当从GUI运行程序时,它通常是一些预定义的目录,如桌面或你的家庭目录。从IDE运行时,它通常是编译期间放置可执行文件的目录(或者您想要的任何地方;它通常是可配置的)。
在任何情况下,您都可以使用getcwd
在运行时获取实际 cwd。然后,您可以使用它来定位您的数据文件。