Estoy intentando aprender C/C++, y me he encontrado con algo curioso que no comprendo.
Parto de este código de ejemplo:
Código:
Este programa lee el teclado y, cuando pulses intro, imprime la línea que has escrito, y vuelve a ponerse a leer el teclado.#include <stdio.h> int main(){ char letra; while (letra = getchar()){ putchar(letra); } return 0; }
Bien, pues me he puesto a probar cosas con la sintaxis de C y transformo el código así:
Código:
Y se produce algún error... se compila perfectamente y sin avisos, pero por alguna extraña razón ya no funciona como debería: Al pulsar intro me imprime una fila de cuadrados (en Linux, en Windows una fila de caritas sonrientes) del mismo tamaño de lo que yo haya escrito...int main(){ char letra; while (letra = getchar() && 1){ putchar(letra); } return 0; }
Me gustaría saber dónde está el problema, ya que yo pensaba que letra tomaría el valor devuelto por getchar, y esta (con su nuevo valor) sería comprobada como un true && true que pasaría a ejecutar el putchar con el valor de letra...
¿Dónde está el problema?
Gracias por vuestro tiempo.