[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Programacion en c, scanf con espacios en blanco



El 2/03/07, Enrique Jiménez Campos <ejcampos@gmail.com> escribió:
Buenas, mi duda es que si hay alguna manera de usar scanf con el parametro %s
para guardar cadenas de caracteres con espacios, me gustaria saberlo ya que
al gcc no parece gustarle demasiao gets().
Un saludo

Hola!

con el parámetro %s no, pero sí podras hacerlo con %[].
Esto funciona de tal forma que entre los corchetes pones los
caracteres que aceptará, o los que nó aceptará.
Por ejemplo:
scanf("%[a-z]",s);
te recogerá un string con caracteres que estén entre la 'a' y la 'z'
incluídas. En cuante encuentre un caracter distinto, parará.
Si pones:
scanf("%[^.]",s);
encajará con todo, excepto con un punto. El el string que devuelve
meterá todo, incluidos espacios, hasta que encuentre un punto.

Yo esto lo he probado para leer de ficheros, pero para entrada
estándar debería funcionar igual. Si quieres que te lea una línea
entera, con espacios incluidos, hasta que pulse intro, quizas esto te
funcione:
scanf("%[^\n]",s);

Espero que te sirva!
(man scanf para más información)

Reply to: