[C con Clase] Duda Principiante... getchar()..
Mauricio Rojas
mrojasb2000 en gmail.com
Mie Dic 27 22:46:35 CET 2006
Hola,
Estuve revisando tu código y la solucion que yo plateo es la siguiente:
#include <stdio.h>
int main()
{
int c;
/* En tu código el error esta en que estas definiendo una variable como
* integer y posteriomente las estas comparando con un caracter
* (doble ' '), podrías haber definido la variable "c" como char, pero
solo
* sirve para obtener un caracter por vez, por lo tanto, c == ' ', no
funk
*/
while ((c = getchar()) != EOF) {
if ( c != 32 ){ // 32 es el código del
caracter blanco.
printf("%c", c);
}else{
printf("%d", c); // Solo para la
comprobación.
printf("\b\b");
}
}
return 0;
}
Espero haber aportado.
Mauricio
El día 27/12/06, Rafael Roman Otero <r_ro86 en hotmail.com> escribió:
>
> *hola, disculpa que no t explique pero no entendi muy bien lo que
> intentabas hacer. yo una ves hice esto: (checa a ver si te sirve)*
>
> #include <stdio.h>
> #include <conio.h>
>
> int main()
> {
> char cadena[21];
>
> //inicializa array
> for(int i=0; i<=20; i++)
> cadena[i] = '\0';
>
> //se introducen os caracteres
> gets(cadena);
>
> //imprime caracter x caracter
> for(int i=0; i<=19; i++){
>
> //imprime el caracter
> printf("%c" ,cadena[i]);
>
> //si hay un doble espacio lo salta
> while(cadena[i]==' ' && cadena[i+1]==' ')
> i++;
> }
>
> getch();
> return 0;
> }
>
> *si metes algo como "a b c d", lo muestra como "a b c d";*
>
> *si tienes alguna duda pregunta, suerte;*
>
>
> ------------------------------
> From: *Federico Gonzalez <fedor_lmds en yahoo.com.ar>*
> Reply-To: *Lista de correo sobre C y C++ <cconclase en listas.conclase.net>*
> To: *cconclase en listas.conclase.net*
> Subject: *[C con Clase] Duda Principiante... getchar()..*
> Date: *Wed, 27 Dec 2006 16:17:07 +0000 (GMT)*
>
> Wenaz, estoy leyendo el libro de Kernighan & Ritchie de C.. y me da un
> Ejercicio que dice: "Escriba un programa que copie su entrada a la salida,
> reemplazando cada cadena de uno o mas blancos por un solo blanco"..
> Intente hacer que si ingresas dos blancos seguidos se borre
> automaticamente con retroceso.. pero no funciono, porque al pedir el getchar
> ya aparece automaticamente el caracter en pantalla.. y no pasa nada ..
> Tambien trate de poner otra variable que sea el anterior caracter puesto
> pero me enrosque y no pude. y nose tampoco sale con esto.. aver si me tiran
> una Mano pliz :P
> porque si sigo adelante y no se ahcer un ejercicio del primer capitulo voy
> mal :S..
>
> ----------------------------------------------------------------------------------------------
> #include <stdio.h>
> main()
> {
> int c;
>
> while ((c = getchar()) != EOF) {
> if ( c == ' ' ) //Aca hay Dos espacios en el ' '...
> printf("\b");
> }
> system("PAUSE");
> }
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
>
> >_______________________________________________
> >Cconclase mailing list
> >Cconclase en listas.conclase.net
> >http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
>
> ------------------------------
> Latinos en EE.UU: noticias y artículos de interés para ti Clic aquí<http://g.msn.com/8HMBESUS/2746??PS=47575>
> _______________________________________________
> Cconclase mailing list
> Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
>
>
--
Mauricio Rojas B.
Ingeniero de Sistemas
GNU/Linux
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061227/5254b148/attachment-0001.html>
Más información sobre la lista de distribución Cconclase