Colección de citas famosas - Slogan de motivación - Cómo leer un archivo línea por línea en lenguaje C

Cómo leer un archivo línea por línea en lenguaje C

En lenguaje C, puedes utilizar la función fgets para leer archivos línea por línea.

1. función fgets:

Prototipo: char

*

fgets(char

*

buf,

int

bufsize,

FILE

*

stream);

Función: Lee datos del flujo de puntero de estructura de archivos, una línea a la vez.

Nota: Los datos leídos se almacenan en la matriz de caracteres señalada por buf, y se pueden leer hasta caracteres bufsize-1 cada vez (al carácter bufsize-ésimo se le asigna un valor de \0). Si la línea tiene menos de caracteres bufsize, terminará después de leer la línea. Si la línea excede los caracteres bufsize-1, fgets solo devolverá una línea incompleta y el búfer buf terminará con \0 caracteres. Continúe leyendo los caracteres restantes de la línea;

Archivo de encabezado: stdio.h;

Valor de retorno: si la lectura se realiza correctamente, se devuelve el mismo puntero de carácter que el parámetro buf Si se produce EOF o un error durante el proceso, se devuelve un puntero NULL. Entonces, cuando encuentre una situación en la que el valor de retorno sea NULL, debe usar la función ferror o feof para verificar si ocurrió un error o si se encontró EOF.

2. Rutina:

#include

int a;

char b, c[100]

int main(){

ARCHIVO * fp1 = fopen("input.txt", "r"); //Abre el archivo de entrada

ARCHIVO * fp2 = fopen( "output.txt", "w"); //Abrir el archivo de salida

if (fp1==NULL || fp2==NULL) {//Salir si falla la apertura del archivo

puts("¡No se puede abrir el archivo!");

rturn 0;

}

fscanf(fp1, "d", amp; a) ; //Leer un número entero del archivo de entrada

b=fgetc(fp1); //Leer un carácter del archivo de entrada

fgets(c, 100, fp1); / Lee una línea de cadena del archivo de entrada

printf("ld", ftell(fp1) // Muestra el número de bytes de desplazamiento de la posición actual del puntero fp1 en relación con el comienzo de el archivo

fputs(c, fp2); //Escribe una línea de cadena en el archivo de salida

fputc(b, fp2); //Escribe un carácter en el archivo de salida.

fprintf( fp2, "d", a); //Escribe un número entero en el archivo de salida

fclose(fp1); //Cierra el archivo de entrada

fclose(fp2); //Cerrar el archivo de salida, equivalente a guardar

return 0;

}