Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: RicGeo en 9 Junio 2014, 16:36 PM

Título: Programa para saber si un archivo esta vacío en C
Publicado por: RicGeo en 9 Junio 2014, 16:36 PM
Que tal amigo quería saber si me podrían ayudar con un programa en c para saber si un archivo tiene contenido o está vacío. Me comentaron que usara EOF pero no domino bien esto, agradecería bastante su apoyo.
Este es el programita en sí.

include<stdio.h>
int main(){
    FILE *rv;
    fopen=("/home/carpeta/x.txt",r);
    if(¿?) //Aca creo que iria algo del EOF
    printf("Archivo tiene contenido");
    else
    printf("Archivo vacio"); 
    return 0;
}
Título: Re: Programa para saber si un archivo esta vacío en C
Publicado por: eferion en 9 Junio 2014, 16:53 PM
No se de dónde has sacado ese código pero ya te digo que no va ni a compilar.

fopen=("/home/carpeta/x.txt",r);

* fopen es una función, no una variable.
* r debería ser una cadena de caracteres para indicar la forma de abrir el fichero.

Por otro lado, para saber si el fichero está vacío puedes mover el cursor al final y consultar su posición en ese punto... si la posición final es 0, el fichero está vacío:


FILE *rv;
rv = fopen( "/home/carpeta/x.txt", "r" );
fseek( rv, 0, SEEK_END );
if (ftell( rv ) == 0 )
{
  // fichero vacio
}
Título: Re: Programa para saber si un archivo esta vacío en C
Publicado por: RicGeo en 9 Junio 2014, 17:05 PM
Cita de: eferion en  9 Junio 2014, 16:53 PM
No se de dónde has sacado ese código pero ya te digo que no va ni a compilar.

fopen=("/home/carpeta/x.txt",r);

* fopen es una función, no una variable.
* r debería ser una cadena de caracteres para indicar la forma de abrir el fichero.

Por otro lado, para saber si el fichero está vacío puedes mover el cursor al final y consultar su posición en ese punto... si la posición final es 0, el fichero está vacío:


FILE *rv;
rv = fopen( "/home/carpeta/x.txt", "r" );
fseek( rv, 0, SEEK_END );
if (ftell( rv ) == 0 )
{
  // fichero vacio
}

Hermano eferion gracias no sabes cuanto me haz ayudado, no me di cuenta del error del fopen por q este es un ejemplo que lo hice rápido, tengo un programa mas completo y complejo que ahora gracias a ti está finalizado miles de gracias