Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - proterva

#1
Programación C/C++ / no lo entiendo
19 Agosto 2018, 12:15 PM
No entiendo porque donde esta el error.
La idea es introducir una palabra como hola y que por pantalla salga:
1
h
2
o
3
l
4
a
El programa que jo he hecho es este:
Código (cpp) [Seleccionar]
#include<stdio.h>
main()
{
char caracter= 0; int i=1;//caracter =\0
printf("dame una cadena de caracteres: ");

  while (getchar()!='\n')
 {
  caracter=getchar();  
  printf("\n%d    %c",i++,caracter);
       
  }
}




Mod: Obligatorio el uso de etiquetas GeSHi para códigos.
#2
Soy novato y no entiendo cuanto un salto de linea se ejecuta y cuando este es guardado como caracter y no se ejecuta.

#include <stdio.h>

main()
{   // programa sin limpiar buffer   
   float precio=0; char car=0;
   printf("precio  ");
   scanf("%g",&precio);
   //ahora al apretar    intro me queda
   //dentro del buffer un salto de linea (\n) y
   //al mismo tiempo se ejecuta un salto de linea   
   printf("pulse entrar para continuar ");
   scanf("%c",&car);
   //ahora al volver apretar intro me queda
   //dentro del buffer dos saltos de linea(\n\n)
   //el segundo salto de linea introducido
   //es leido como un caracter y no es ejecutado
   printf("precio=%g,\n",precio);
   //ahora en el buffer nos queda un salto de linea(\n)
   
   //resultado:
   //precio: (entrar 10 + pulsar intro)
   //pulse entrar para continuar (pulsar intro) precio=10
   
   //////////////////////////////////////////////////////////////
   //programa limpiando buffer
   
   float precio=0; char car=0;
   printf("precio  ");
   scanf("%g",&precio);
   //ahora al apretar    intro me queda
   //dentro del buffer un salto de linea (\n) y
   //al mismo tiempo se ejecuta un salto de linea
   fflush( stdin);
   //ahora el buffer esta vacio
   
   printf("pulse entrar para continuar ");
   scanf("%c",&car);
   //ahora al volver apretar intro me queda
   //dentro del buffer hay un salto de linea(\n)
   //Y este salto de linea deberia ser leido como un
   //caracter y no ser ejecutado
   //en cambio, no se por que si es ejecutado
   //lo que quiere decir que no es leido como caracter.
   //lo que significa que en el buffer nos queda un (\n)
   //Porque??????????????????????????   
   printf("precio=%g,\n",precio);
   
   //resultado
   
   //precio: (entrar 10 + pulsar intro)
   //pulse entrar para continuar (pulsar intro)
   //precio=10
   
}