elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al imprimir cadena de carácteres en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Error al imprimir cadena de carácteres en C  (Leído 13,963 veces)
darg94

Desconectado Desconectado

Mensajes: 21


00110100 00110010


Ver Perfil
Re: Error al imprimir cadena de carácteres en C
« Respuesta #10 en: 21 Octubre 2012, 15:07 pm »

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


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Error al imprimir cadena de carácteres en C
« Respuesta #11 en: 21 Octubre 2012, 15:09 pm »

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


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Error al imprimir cadena de carácteres en C
« Respuesta #12 en: 21 Octubre 2012, 15:09 pm »

Leosansan, antes afirmabas esto:

Citar
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...:

Citar
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


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Error al imprimir cadena de carácteres en C
« Respuesta #13 en: 21 Octubre 2012, 15:16 pm »

En general es asi:

Código
  1. int main(int argc, char const *argv[])
  2. {
  3. /* code */
  4. return 0;
  5. }

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:

Código
  1. while (getchar() != '\n')
  2. ;
Saludos
« Última modificación: 21 Octubre 2012, 15:21 pm por Caster » En línea

darg94

Desconectado Desconectado

Mensajes: 21


00110100 00110010


Ver Perfil
Re: Error al imprimir cadena de carácteres en C
« Respuesta #14 en: 21 Octubre 2012, 15:39 pm »


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:
Código:
printf ("Ahora sé que te llamas %s y vives en %s.\nEsto fue una prueba de C.\n", c, nombre, lugar, a);
a
Código:
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

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener caracteres de una Cadena VB.NET
.NET (C#, VB.NET, ASP)
NetStorm 7 17,604 Último mensaje 29 Diciembre 2009, 02:06 am
por NetStorm
cadena de caracteres
Programación C/C++
Ander123 1 2,367 Último mensaje 6 Septiembre 2012, 14:15 pm
por avesudra
[SOLUCIONADO]Recursividad: Simulacion de ciclos (Imprimir una cadena alreves)
Programación C/C++
darking664 5 3,344 Último mensaje 17 Septiembre 2013, 02:25 am
por rir3760
Error al imprimir caracteres
Programación C/C++
JoseCheO 3 2,334 Último mensaje 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,394 Último mensaje 2 Marzo 2015, 03:41 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines