leer frase con scanf

Iniciado por Fer995, 28 Octubre 2010, 20:03 PM

0 Miembros y 1 Visitante están viendo este tema.

3mp3z@ndo

En realidad no hace nada  :P, te habia puesto un ejemplo imprimiendo la frase introducida entre comillas así:

printf( "\nHas escrito: \"%s\"\n", gets(frase) );

pero luego pensé que no era necesario y lo he modificado pero se me ha colado la barra al eliminar las comillas

Saludos

taul

Cita de: pablomi en 29 Octubre 2010, 23:34 PM
Incorrecto, os recomiendo que leais esto.

Saludos !

el pibe pregunto como hacerlo con scanf y yo le respondi el code esta bien..y yo te recomiendo leer la pregunta del usuario y un manual de C.

(esta bien escrito)

Littlehorse

Cita de: taul en 30 Octubre 2010, 05:33 AM
Cita de: pablomi en 29 Octubre 2010, 23:34 PM
Incorrecto, os recomiendo que leais esto.

Saludos !

el pibe pregunto como hacerlo con scanf y yo le respondi el code esta bien..y yo te recomiendo leer la pregunta del usuario y un manual de C.

(esta bien escrito)

Taul, vos tampoco leíste bien la pregunta del usuario, si te fijas quiere saber como leer mas de una palabra ya que scanf lee hasta encontrar un espacio. Tu codigo tiene exactamente el mismo problema.



@Fer995

No uses getch ya que es una función de un header obsoleto, ni fflush con stdin ya que produce comportamiento indefinido.
Tampoco utilices gets, ya que es propensa a errores debido a que no podes especificar el tamaño del buffer a leer.

Si queres hacerlo con scanf, podes hacer algo así:

char cad[1000];
scanf("%[^\n]", cad);


Pero mi recomendación es que utilices fgets con stdin del modo que te menciono Beetle Juice. Dale una leida a las chinchetas y a los links que te recomendaron.

Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Fer995

gracias de nuevo por las respuestas!

MG2010

#14
En c++ es muy simple:

Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
using namespace::std;

int main (){

string frase;
cin >> frase;
cout << "Tu frase fue: " << frase << endl;
return 0;
                 }
User

Horricreu

#15
MG2010 te falta poner una almohadilla.

Qorin

En cualquier ingeniería no te dejarán usar la función gets durante el enseñamiento...así que otra opción es usar un do-while y un vector