¿Cómo leer una o más líneas de datos especificadas en un texto usando C++?
Simplemente usa la función fgets.
1. Función fgets:
Prototipo: char * fgets(char * buf, int bufsize, FILE * stream);
Función: desde el puntero de la estructura del archivo; Lea los datos de la secuencia, una línea a la vez;
Descripción: los datos leídos se almacenan en buf y los datos leídos se almacenan en la matriz de caracteres a la que apunta bufsize. Un máximo de bufsize- puede ser. leer cada vez. 1 carácter (al primer carácter de tamaño buf se le asigna \0). Si la línea tiene menos de bufsize caracteres, se lee el final de la línea. Si la línea tiene más de bufsize-1 caracteres, fgets devuelve solo una línea incompleta, el buffer buf termina con \0 caracteres y la siguiente llamada de fgets. Continúe leyendo el número restante de caracteres en la línea;
Archivo de encabezado: stdio.h;
Valor de retorno: si la lectura es exitosa, el mismo puntero de carácter que el parámetro buf se devuelve si se encuentra un EOF o un error durante la lectura, se devuelve un puntero NULL. Por lo tanto, cuando encuentre un valor de retorno NULL, debe usar la función ferror o feof para verificar si ocurrió un error o si se encontró EOF. Ejemplo: #include
int?a;
char?b,c[100];
int?main(){
FILE?*?fp1?=?fopen("input.txt",?" r");//Abrir el archivo de entrada
FILE?*?fp2?=?fopen ( "output.txt",?" w");//Abrir el archivo de salida
if?(fp1==NULL?||?fp2==NULL)?{Si el archivo no se puede abierto, salir
puts("¡No se puede abrir el archivo!") )
regresar?;
}
fscanf(fp1," %d", &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);//leer una línea de cadena del archivo de entrada
printf("%ld",ftell(fp1));//generar el número de bytes desplazados desde la posición actual del puntero fp1 en relación con el encabezado del archivo
fputs(c,fp2);//Escribe una cadena en el archivo de salida
fputc(b,fp2) ;/ /Escribe caracteres en el archivo de salida
fprintf(fp2,"%d",a);//Escribe números enteros en el archivo de salida
fclose(fp1);// Cerrar el archivo de entrada
fclose(fp2);//Cerrar el archivo de salida, lo que equivale a guardar
return?0;
}.