Autor
|
Tema: Error al imprimir cadena de carácteres en C (Leído 14,562 veces)
|
darg94
Desconectado
Mensajes: 21
00110100 00110010
|
Difícil que te de ese error cuando no tienes ni declarada la variable apellido ni aparece dicho nombre en los printf, además de asignar el símbolo %S de cadenas a caracteres a,b,c.
copialo, pegalo, compilalo y ejecutalo
|
|
|
En línea
|
|
|
|
Caster
|
El error esta en que cuando introduce la primera cadena, en el buffer queda un salto de linea '\n' entonces al siguiente scanf ya no deja introducir nada, para esto la solucion es limpiar el buffer. Respecto a los caracteres a,b y c los esta utilizando para que aparezcan los acentos, entonces en el segundo printf da error porque solo estan los caracteres de conversion para las cadenas nombre y lugar, pero no para los caracters, ahi da el error.
Quiero dejar claro que he copiado el codigo y lo he compilado y a la hora de introducir la seugnda cadena me da error y se me cierra
Saludos
|
|
|
En línea
|
|
|
|
DickGumshoe
|
Leosansan, antes afirmabas esto: Difícil que te de ese error cuando no tienes ni declarada la variable apellido ni aparece dicho nombre en los printf Ahora dices que lo que falla es en que tiene que poner fflush(stdin)... Y precisamente fflush(stdin), además de no ser nada correcto, en este caso la función sería la misma que getchar(), que sí es correcto (y es lo mismo que lo que dijo también Caster)... Creo que estamos dándole muchas vuelvas al tema. Con mi primera respuesta ya solucionó su duda...: Gracias para ayudar a un novatazo ^^
Funciona perfectamente, gracias. Aver si me acostumbro a poner siempre los getchar Darg94, la forma correcta en el estándar de C de la función main es int main() { ... return 0; } Es decir, que main es de tipo int en el estándar. El return 0 es porque, como toda función de tipo int, debe devolver algo. Se usa 0 si el programa terminó correctamente, u otro número si hubo algún error.
|
|
« Última modificación: 21 Octubre 2012, 15:17 pm por DickGumshoe »
|
En línea
|
|
|
|
Caster
|
En general es asi: int main(int argc, char const *argv[]) { /* code */ return 0; }
Esto es asi porque en los estandares de C la funcion main() es de tipo int, y por consiguiente al ser de tipo int siempre retornara un valor entero, por eso se escribe return 0; Se puede utilizar fflush(stdin) para limpiar el buffer, pero es mejor evitar su uso, porque fflush es para el buffer de salida(stdout), si se usa para stdin su comportamiento no tiene porque ser el esperado y producir problemas en la ejecución del programa, la mejor forma es como ya dije mas arriba, asi: ;
Saludos
|
|
« Última modificación: 21 Octubre 2012, 15:21 pm por Caster »
|
En línea
|
|
|
|
darg94
Desconectado
Mensajes: 21
00110100 00110010
|
Quiero dejar claro que he copiado el codigo y lo he compilado y a la hora de introducir la seugnda cadena me da error y se me cierra
Saludos
oops mis disculpas, me olvidé de cambiar esto: de: printf ("Ahora sé que te llamas %s y vives en %s.\nEsto fue una prueba de C.\n", c, nombre, lugar, a);
a printf ("Ahora s%c que te llamas %s y vives en %s.\nEsto fue una prueba de C.\n", c, nombre, lugar);
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Obtener caracteres de una Cadena VB.NET
.NET (C#, VB.NET, ASP)
|
NetStorm
|
7
|
17,850
|
29 Diciembre 2009, 02:06 am
por NetStorm
|
|
|
cadena de caracteres
Programación C/C++
|
Ander123
|
1
|
2,560
|
6 Septiembre 2012, 14:15 pm
por avesudra
|
|
|
[SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Programación C/C++
|
darking664
|
5
|
3,610
|
17 Septiembre 2013, 02:25 am
por rir3760
|
|
|
Error al imprimir caracteres
Programación C/C++
|
JoseCheO
|
3
|
2,523
|
5 Febrero 2014, 04:46 am
por Yoel Alejandro
|
|
|
Ayuda... Necesito imprimir los caracteres que mas se repiten de una cadena
Programación C/C++
|
MellaSystems
|
8
|
6,767
|
2 Marzo 2015, 03:41 am
por engel lex
|
|