[C con Clase] vectores[BUFSIZ], ctype.h

Davidson, Steven srd4121 en njit.edu
Lun Abr 6 15:10:41 CEST 2015


Hola Rabab,

2015-04-06 3:06 GMT-04:00 Rabab <Rababiqueem en gmail.com>:

> Buenos días,
> tengo una duda con un programa que estoy intentando ejecutar.
> En primer lugar el programa me pide que introduzca unos datos, que guardo
> en el vector char word [BUFSIZ]; a continuación hago una función que me
> diga cual es la longitud de éste vector, no obstante si pongo algún espacio
> en blanco solamente me lee la primera parte.. por ejemplo: 1234 653; pues
> el programa me dice que hay 4 dígitos en vez de decirme que hay 7 y utilizo
> isspace() para que lea los espacios en blanco pero no entiendo por qué no
> hay manera de que los lea.
>
>
Esto depende de la forma en que leas los caracteres. Sospecho que has usado
'cin <<' por lo que se detiene al encontrarse con espacios en blanco. La
función 'isspace()' no sirve para leer los espacios en blanco, sino para
comprobar si un carácter es un espacio en blanco. Si lees caracteres uno a
uno, usando 'cin.get()' por ejemplo, entonces si puedes comprobar si tal
carácter es un espacio en blanco y luego comprobar si es el fin de línea,
'\n'.

La solución más sencilla es usar 'getline()'; por ejemplo,

cin.getline( word, BUFSIZ );

Leerá todos los caracteres hasta llegar al final o hasta uno menos que la
cantidad máxima y los extraerá guardándolos en 'word' acompañados siempre
del carácter nulo al final del array.


Espero que esto te ayude.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150406/80ad49c7/attachment.html>


Más información sobre la lista de distribución Cconclase