Est-il possible d'ouvrir un fstream sur un fichier qui n'existe pas avec les deux ios :: in & ios :: out sans erreur?fstream in et out sur fichier inexistant
Répondre
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream f("test.txt", fstream::in | fstream::out);
cout << f.fail() << endl;
f << "hello" << endl;
f.close();
return 0;
}
Ce code imprimera 1
et de créer le fichier « test.txt », si elle ne sort pas. Il n'est donc pas possible d'ouvrir et de fstream sur un fichier qui n'existe pas sans avoir d'erreur.
Voulez vous dire "filestr.fail () "et" filestr << << bonjour >><< endl; " – Secko
@Secko Oui, merci. –
#include <fstream>
ofstream out("test", ios::out);
if(!out)
{
cout << "Error opening file.\n";
return 1;
}
ifstream in("test", ios::in);
if(!in)
{
cout << "Error opening file.\n";
return 1;
}
En cas d'erreur, le message est affiché et un (1) est renvoyé. Cependant, il est possible de compiler et d'exécuter seulement ofstream out("test", ios::out);
et ifstream in("test", ios::in);
sans aucune erreur. Dans tous les cas, le fichier test est créé.
Mise à jour: Pour ouvrir un fstream
sur un fichier qui n'existe pas pour l'entrée et la sortie (accès aléatoire) sans obtenir une erreur, vous devez fournir fstream::in | fstream::out | fstream::trunc
dans le open
(ou constructeur) appel. Comme le fichier n'existe pas déjà, tronquer le fichier à zéro octet n'est pas un drame.
Vous serait une erreur voulez lors de l'ouverture d'un fichier qui n'existe pas lors de la spécification neios::in
puisque vous ne serez jamais capable de lire à partir du flux il est donc préférable d'échouer tôt.
Alors pourquoi ne pas ouvrir un fichier qui n'existe pas à travers un objet de classe fstream jeter une erreur? Exemple: fstream myfile; myfile.open ("this_file_doesn't_exist.txt"); // Cela ne génère aucune erreur. – Ketcomp
std::fstream f("test.txt", std::ios_base::out);
f.close(); //file now exists always
f.open("test.txt", fstream::in | std::ios_base::out);
//f is open for read and write without error
Je n'ai pas vérifié pour garantir qu'il s'ouvrira sans erreur, mais je me sens assez confiant qu'il devrait.
- 1. C# et mp3 fade in/out
- 2. Lecture et ajout de/à un fichier avec std :: fstream
- 3. ibatis in/out problème problème
- 4. Fade-In de texte d'exploration et -out dans Flex
- 5. zoom Excel 2007 in zoom out
- 6. fade in et out musique tout en parlant un texte
- 7. Javascript fade image in and out
- 8. jQuery Cycle Fade In/Out Aide
- 9. JQuery Click Btn Fade in/out
- 10. importer depuis {in, out} côté d'un paquet
- 11. Sounds fade in/out avec ActionScript 3
- 12. fade in/out hover par jQuery
- 13. Signification des paramètres internes 'in' 'out' et 'retval' en C#
- 14. Quels sont les paramètres IN et OUT dans SQL Server
- 15. Fade In et Out Audio dans le SDK iPhone
- 16. Coherence cache | ConcurrentHashMap in, HashMap out
- 17. C++ erreur fstream
- 18. Silverlight 4 stackpanel estompé in/out
- 19. données Ecraser dans un C++ fichier en utilisant fstream
- 20. Image Caché, puis sur le mouvement de la souris Fade-In, Fade-Out et Fade-In à nouveau
- 21. Rediriger C++ fstream
- 22. Le chemin absolu fstream ne fonctionne pas
- 23. Comment s'appelle cet effet? 'Grow/shrink'? 'Fly-out/fly-in'?
- 24. Pourquoi ne puis-je pas lire et ajouter avec std :: fstream sur Mac OS X?
- 25. fstream pour const char *
- 26. flash comme page transition in/out avec JQuery
- 27. Fade in/out superposition de texte plugin image pour jQuery
- 28. JQUERY, création de panneaux, qui se fondent IN/OUT
- 29. JQuery fade in/out en boucle plus d'une fois
- 30. peut serveur COM réallouer ([in, out] CACLSID * arg)?
N'oubliez pas d'accepter les réponses, ou aidez les répondeurs en leur faisant savoir si vous avez essayé leurs solutions (ou remplissez-les avec plus de détails afin qu'ils puissent adapter leurs réponses.) –