QFile n'est pas ouvrir le fichier
J'ai un programme que j'ai pratiquement ont volé de l'intervalle Qt site web pour essayer d'obtenir un fichier pour l'ouvrir. Le programme refuse d'ouvrir quoi que ce soit je suis confus quant à pourquoi. J'ai regardé pour beaucoup de documentation, mais rien trouvé pouvez-vous expliquer pourquoi il ne fonctionne pas.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QTextStream>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)
{
QFile file("C:/n.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
QString f=in.readLine();
lab =new QLabel("error",this);
lab->setGeometry(100,100,100,100);
lab->setText(f);
}
- Ce qui ne l'QFile::error() la méthode de retour ?
- Comment puis-je utiliser QFile::error().
- Comme tout membre de la fonction. Vous avez documentation de Qt, pensez-vous?
- Appel QFile::error() avant de retourner sur le QFile::ouvert à l'échec.
- Quelqu'un pourrait-il me donner un extrait de code pour savoir comment l'utiliser et oui j'ai regardé l'intervalle qt docs.
- Il est extrêmement facile à utiliser. Le plus simple est de stocker la valeur de retour de
QFile::error()
à une variable, puis exécutez le code dans un débogueur et voir ce que la valeur de retour est. Ensuite, trouver de la documentation de Qt ce que ce code d'erreur signifie. - Et êtes-vous vraiment sûr que le fichier
C:\n.txt
existe? Êtes-vous sûr qu'il n'est pas, par exemple,C:\n.txt.txt
? - thanl vous remercier vous soososossososo beaucoup j'ai eu tellement de crises d'angoisse sur ce, je suis tellement revécu s'avère qu'il était n.txt.txt je suis tellement stupide merci
Vous devez vous connecter pour publier un commentaire.
Avant de l'ouverture du fichier, vous pouvez toujours vérifier l'existense:
Si le fichier existe, mais ne pas ouvrir, vous pouvez obtenir l'état d'erreur et message:
Et toujours: si le fichier a été ouvert, alors n'oubliez pas de le fermer. Dans votre exemple, vous n'avez pas:
FileError QFile::erreur () const
Renvoie le fichier de statut d'erreur.
Le périphérique d'e/S d'état renvoie un code d'erreur. Par exemple, si elle est ouverte() retourne false, ou une opération de lecture/écriture renvoie -1, cette fonction peut être appelée à en trouver la raison de l'échec de l'opération.
Voir aussi unsetError().
Post le code d'erreur. N'est-il pas censé être QFile file("C:\n.txt"); \ ce n'est pas /dans windows?
QFile file("C:\\n.txt");
parce que les barres obliques inverses doivent être échappés. Mais / fonctionne très bien sous Windows donc il n'est pas nécessaire de le changer./
est préférable de séparateur de chemin dans les chaînes de caractères à l'intérieur de l'application. Aucune raison de faire le portage de plus, et pas de raison d'utiliser char qui a besoin de s'échapper à l'intérieur de chaînes (avec la possibilité d'oublier, et avec de la malchance juste silencieusement obtenir un mauvais caractère).