[OT] fallo en programa

2003-12-13 Por tema SoTaNeZ
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.



Re: [OT] fallo en programa

2003-12-13 Por tema Iaki Albors

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



Re: [OT] fallo en programa

2003-12-13 Por tema Iaki

Iñaki Albors wrote:


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



Perdona, el espacio en blanco debe estar antes de %c...

Iñaki



Re: [OT] fallo en programa

2003-12-13 Por tema SoTaNeZ
On Sat, 13 Dec 2003 19:14:35 +0100
Iñaki Albors [EMAIL PROTECTED] wrote:

== 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

Gracias xD