[C] Duda facil - cadena

Iniciado por n-utz, 20 Septiembre 2016, 23:09 PM

0 Miembros y 1 Visitante están viendo este tema.

n-utz

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.

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.

fflush

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

crack81

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:
Si C/C++ es el padre de los lenguajes entonces ASM es dios.

n-utz

Gracias gente, no me di cuenta que al poner [10] iba a comparar ese elemento jaja, voy a usar la funcion.