Título: ayuda con un programa de ficheros Publicado por: aradxc56 en 13 Marzo 2019, 16:11 pm Como podría hacer para que me mostrara el contenido de una línea que el strtoken detecta ?, adjunto el .c
#include <stdio.h> #include <stdlib.h> #include <string.h> int main (){ int i,j; char *token; char arma[20],buffer[300]; FILE *objetos ; objetos=fopen( "Objetos.txt" , "r" ); if (objetos == NULL){ printf( "Error en la lectura del archivo\n" ); } else {//ENCUENTRA EL ARMA EN EL FICHERO do{ printf("Introduzca el nombre del objeto\n"); scanf("%s",arma); do{ fgets(buffer,300,objetos); token=strtok(buffer,"/"); if (strcmp(arma,token)==NULL){ printf("Tiene estas carateristcas"); //mostrar caracteristicas aqui, quiero mostrar la linea que ha detectado el token printf("¿Desea introducir otro objeto?\n Si==>1 No==>otra tecla\n"); scanf("%i",&j); } else{ printf("No se ha encontrado el objeto\n vuelva a introducir el nombre\n\n"); j=1; } }while(feof(objetos)); }while(j==1); } } Título: Re: ayuda con un programa de ficheros Publicado por: K-YreX en 13 Marzo 2019, 16:36 pm Lo primero, el código de tu programa colócalo entre etiquetas de código GeSHi (están encima del cuadro de texto cuando escribes o modificas un mensaje)...
Y creo que la forma más fácil sería sin usar <strtok()>. Tienes en <arma> el nombre que quieres buscar, y en <buffer> una línea que parece que empieza por el nombre del arma, seguido de "/" y de sus características. Entonces puedes usar <strncmp()> para comparar <arma> con los <n> primeros caracteres de <buffer> (siendo n el tamaño de la palabra <arma>. Cuando coincida, muestra el <buffer> y se mostrará la línea completa. Suerte :-X |