Código:
# include <stdio.h>
# include <iostream.h>
int main()
{
FILE * arch;
arch = fopen("Luis.txt","r"); // intentando abrir
if(arch == NULL)
{
cout<<"El archivo no existe";
}
else
{
cout<<"El archivo si existe";
}
getchar();
return 0;
}
Bueno, en este primero código estoy tratando de abrir un archivo. Para eso hago uso de la función fopen(...). Cuando no existe el archivo devolverá NULL y me mostrará el mensaje correspondiente. Pero que sucede si el archivo existiera. Qué valor devuelve la función fopen ¿?. Ya sé que me mostrará el mensaje "El archivo si existe" pero mi primera duda sería que si no devuelve NULL entonces ¿qué devuelve?
Sigo entonces. Con este siguiente código. Hago uso de la función fopen para abrir el archivo en el modo lectura. Si no existe entonces me pregunta si deseo crearlo, para eso hago uso de fopen en el modo "w". La teoría dice que si el archivo no existe, entonces la función lo crea. Muy bien hasta aquí. Pero, la función ¿Solo lo crea pero no lo abre o a parte de crearlo también lo abre?. Porque si solo lo crea pero no lo abre, entonces no tendría que usar fclose. Pero en caso contrario, sería necesario que lo cierre con fclose.
Código:
# include <stdio.h>
# include <iostream.h>
int main()
{
FILE * arch;
char resp;
arch = fopen("Luis.txt","r"); // intentando abrir
if(arch == NULL)
{
cout<<"El archivo no existe\n\n\n";
do{
cout<<"Desea crear el archivo???";
cin>>resp;
}while(!(resp=='S' || resp=='N'));
if(resp=='S')
{
arch = fopen("Luis.txt","w");
fclose(arch);
}
}
else
{
cout<<"El archivo si existe";
}
getchar();
return 0;
}
Muchas gracias.