Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: n-utz en 20 Septiembre 2016, 23:09 pm



Título: [C] Duda facil - cadena
Publicado por: n-utz en 20 Septiembre 2016, 23:09 pm
Bien, recien estoy empezando con archivos, y arranque por un programa facilito. Que me grabe frases en un txt mediante la variable texto, hasta que ingreso la palabra "fin", cuando se ingresa fin se cierra el archivo, sin grabar dicha palabra.

Resulta, que por mas que ingrese fin no me lo toma, les paso el fragmento del codigo.

Código:
char texto[10];
    FILE* fichero;
    fichero= fopen("registroDeUsuario.txt", "wt");

    while(texto[10] != "fin"){
        fflush(stdout);
        gets(texto);
        fputs(texto,fichero);
        fputs("\n",fichero);
    }
    fclose(fichero);


intente tambien con comillas simples y nada.


Título: Re: [C] Duda facil - cadena
Publicado por: fflush en 20 Septiembre 2016, 23:19 pm
Hola, no probé el código ni me detuve a mirar detenidamente. Pero posiblemente el error es que estas comparando un puntero (lease tamaño de vector) con una cadena de caracteres.
Para comparar strings tenes que usar la funcion STRCMP(cadena1, cadena2) arroja 0 si ambas funciones son iguales


Título: Re: [C] Duda facil - cadena
Publicado por: crack81 en 20 Septiembre 2016, 23:20 pm
Si quieres comparar cadenas usa la función strcmp de C
Enlace: http://www.cplusplus.com/reference/cstring/strcmp/

En tu programa lo que estas comparanado es  el ultimo carácter del arreglo con la cadena, por obvias razones jamas dará true

Saludos.... :laugh:


Título: Re: [C] Duda facil - cadena
Publicado por: n-utz en 20 Septiembre 2016, 23:35 pm
Gracias gente, no me di cuenta que al poner [10] iba a comparar ese elemento jaja, voy a usar la funcion.