[C con Clase] Guardar cada línea en arrays independientes

Davidson, Steven srd4121 en njit.edu
Jue Mar 1 17:22:30 CET 2018


Hola Laura,

El mensaje de error es del enlazador, por lo que no es posible ejectuar el
programa. Lo más seguro es que hubo un mensaje del compilador anterior a
éste que es el error "de verdad". Mirando el código fuente, creo que el
problema es la línea:

scandf( "%i", &pedidoBuscado );

El nombre correcto de la función es 'scanf'.


Espero que esto te sirva.

Steven


2018-03-01 9:02 GMT-05:00 LAURA PATRICIA CARRANZA MURILLO <
laura.carranza en unibague.edu.co>:

> Buenos días y muchas gracias por la respuesta!
>
> Agregué al código la parte en azul, pero el programa ya no ejecuta y en
> cambio me arroja el siguiente error: "C:\Users\usuario\Desktop\
> collect2.exe [Error] ld returned 1 exit status" . No estoy segura si esto
> tiene que ver con el hecho de que las filas del txt no tienen la misma
> longitud, es decir mientras una linea contiene 4 datos, la siguiente
> almacena 14. Yo había hecho ya una prueba agregando 0 manualmente para
> completar las filas y darles igual tamaño y funcionó bastante bien, pero
> será muy engorroso al aplicar el programa en archivos de mayor contenido.
>
> Si dado el caso debo agregar ceros para completar las líneas de menor
> tamaño, me podrías indicar de qué manera encontrar la línea de mayor tamaño
> y su longitud?.
>
> Aquí dejo el código modificado.
>
> #include <stdio.h>
>
> int main()
> {
>    int i;
>    char nombre[10]="datos.dat", linea[81];
>    FILE *fichero;
>    fichero = fopen( "C:\\Prueba\\guia(1).txt","r");
>    printf( "Fichero: %s -> ", nombre );
>    if( fichero )
>       printf( "existe (ABIERTO)\n" );
>
>    else
>    {
>       printf( "Error (NO ABIERTO)\n" );
>       return 1;
>    }
>
> printf( "La primera linea del fichero: %s\n\n", nombre );
>     printf( "%s\n", fgets(linea, 81, fichero) );
>
> printf( "DATOS DE LOS PEDIDOS \n\n");
> for (i = 0; i< 20; i++)
> {
> printf( "%s\n", fgets(linea, 81, fichero) );
> }
> fseek(fichero,0L,SEEK_CUR);
>    char lineas[20][81];
>
> for( i = 0; i< 20; i++ )
> {
>   fgets( lineas[i], 81, fichero );
> }
> printf("que pedido busca? ");
> int pedidoBuscado;
> pedidoBuscado= i+1;
> scandf("%i",&pedidoBuscado);
> printf("el pedido uno contiene: %s", linea[pedidoBuscado]);
>
>    if( !fclose(fichero) )
>       printf( "\nFichero cerrado\n" );
>    else
>    {
>       printf( "\nError: fichero NO CERRADO\n" );
>       return 1;
>    }
>
>       return 0;
> }
>
> Saludos!
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20180301/89379a08/attachment.html>


Más información sobre la lista de distribución Cconclase