yo soy muy nuevo en el mundo de C++ control de errores, pero me dijeron aquí:
Checking for file existence in C++Try-Catch bloque para C++ errores del archivo-IO no funciona
... que la mejor manera de cheques para la existencia del archivo fue con un bloque try-catch. De mi limitado conocimiento sobre el tema, esto suena como un buen consejo. Localicé este fragmento de código:
http://www.java2s.com/Tutorial/Cpp/0240__File-Stream/Readafileintrycatchblock.htm
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
try{
char buffer[256];
ifstream myfile ("test.txt");
while (! myfile.eof())
{
myfile.getline (buffer,100);
cout << buffer << endl;
}
}catch(...){
cout << "There was an error !\n";
}
return 0;
}
... pero cuando compilo usando
g++ -Wall -pedantic -o test_prog main.cc
y ejecutar el programa en un directorio donde test.txt no existe, el Prog sigue escupiendo líneas vacías a la terminal. ¿Alguien puede descubrir por qué?
También es esto una buena forma de comprobar la existencia de archivos en un archivo que realmente desea abrir y leer (¿en lugar de simplemente indexar un conjunto de archivos y verificarlos)?
Gracias!
[Su lógica de lectura de archivos es incorrecta.] (Http://punchlet.wordpress.com/2009/12/01/hello-world/) Y use 'std :: string'. Y las transmisiones no usan excepciones, por defecto. – GManNickG
No es mío ... Obtuve el código de un sitio tutorial, como mencioné;) entonces, si las transmisiones no usan excepciones, ¿cómo debo detectar errores si el archivo no existe? –
Ah. El sitio web apesta entonces, no es una sorpresa. Debería obtener [un libro] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) si realmente desea aprender. – GManNickG