SoTaNeZ wrote:
Buenas.
Estoy aprendiendo c++ en linux y este programa me falla:
----------------------------------------------------
#include <iostream>
int main()
{
int filas, columnas;
char elCaracter;
printf ("¿Cuantas filas? ");
scanf ("%d", &filas);
printf ("¿Cuantas columnas? ");
scanf ("%d", &columnas);
printf ("¿Cuál carácter? ");
scanf ("%c",&elCaracter);
for (int i = 0; i < filas; i++)
{
for (int j = 0; j < columnas; j++)
printf("%c", elCaracter);
printf("\n");
}
return 0;
}
-------------------------------------------------------
Al escribirle el numero de columnas se salta el scanf ("%c",&elCaracter) y
escribe varias lineas en blanco (las del bucle for supongo).
Si cambio los %c por %s me deja meter el caracter pero sigue escribiendo las
lineas en blancos. Lo he copiado exactamente del libro que estoy siguiendo,
salvo que en vez de printf y scanf usa cout y cin.
He buscado info y parece que lo que hago está bien.
Gracias y un saludo.
Hola, léete el man de scanf. Refiriéndose al formato y en el caso de
caracteres (%c) dice exactamente:
/The usual skip of leading white space is suppressed. To skip
white space first, use an explicit space in
the format./
O sea, que para que te salga, hay que poner algo así:
scanf(" %c",&elCaracter);
^
(Espacio en blanco)
Espero que te sirva...
Iñaki