El 2/03/07, Enrique Jiménez Campos <[EMAIL PROTECTED]> 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)