Algoritmia - AYUDENME CON ESTE ARCHIVO PORFAVOR

 
Vista:

AYUDENME CON ESTE ARCHIVO PORFAVOR

Publicado por JOSE (1 intervención) el 03/05/2009 15:21:30
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

FILE *f;
char linea[100];
int main(int argc, char *argv[]){

fprintf(stdout," programa para leer una archivo");
fprintf(stdout," -------------------------------");

if ((f=fopen("hola.txt", "r"))==NULL){
fprintf(stderr," error no se puee abrir archivo");
exit(-1);
}
while (!feof(f)){
fgets(linea,sizeof(linea),f);
fprintf(stdout , "%s ",linea);

fclose(f);
fprintf(stdout,"eso es todo el archivo");
exit(0);
}

TENGO ESTE PROGRAMA KE PARA ABRIR ARCHIVO ETC ETC
LO KE TENGO KE HACER AHORA ES KE PUEDA ABRIR EL ARCHIVO
Y CUANDO KIERA ABRIR OTRO NU PUEDA KE KE SE BLOQUE POR QUE YA TENGO UNO ABIERTO Y LO PUEDA ABRIR CUANDO YA LO ALLA CERRADO KIEN ME PUEDE AYUDAR CON ESTO
TA WENO EL PROB.
WENO SALUOS EXELENTE FORO
XAU
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Control de apertura de archivos en C

Publicado por Alejandro (307 intervenciones) el 13/03/2024 23:10:29
José, para lograr que el programa pueda abrir un archivo y no permita abrir otro hasta que se haya cerrado el archivo actual, puedes implementar una lógica que controle el estado del archivo. Aquí tienes una modificación del código para lograr esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
FILE *f = NULL; // Inicializamos el puntero de archivo a NULL
char linea[100];
 
int main(int argc, char *argv[]){
    fprintf(stdout, "Programa para leer un archivo\n");
    fprintf(stdout, "-----------------------------\n");
 
    // Verificar si hay un archivo abierto
    if (f != NULL) {
        fprintf(stderr, "Error: Ya hay un archivo abierto\n");
        exit(-1);
    }
 
    // Abrir el archivo
    if ((f = fopen("hola.txt", "r")) == NULL) {
        fprintf(stderr, "Error: No se puede abrir el archivo\n");
        exit(-1);
    }
 
    // Leer el archivo y mostrar su contenido
    while (fgets(linea, sizeof(linea), f) != NULL) {
        fprintf(stdout, "%s", linea);
    }
 
    // Cerrar el archivo
    fclose(f);
    f = NULL; // Establecer el puntero de archivo a NULL para indicar que no hay archivo abierto
 
    fprintf(stdout, "Eso es todo el archivo\n");
    return 0;
}

En este código, se ha agregado una verificación para asegurarse de que no se abra un archivo si ya hay uno abierto (`if (f != NULL)`). Si ya hay un archivo abierto, el programa mostrará un mensaje de error y terminará. Además, después de cerrar el archivo, se establece el puntero de archivo a NULL (`f = NULL`) para indicar que no hay archivo abierto. Esto permitirá abrir otro archivo la próxima vez que se ejecute el programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar