Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Curioso0078 en 15 Marzo 2017, 19:06 pm



Título: Problema al leer desde la bibliteca standar
Publicado por: Curioso0078 en 15 Marzo 2017, 19:06 pm
Tengo que crear una funcion que devuelva un texto (Una palabra) leido desde la entrada estandar. Como es una palabra, la funcion lee hasta encontrar un espacio en blanco. Ademas esta la condicion de que la palabra no puede ser mayor a 20.
Tengo que hacerlo mediante punteros y estructuras por eso, lo que hice fue lo siguiente:

Código
  1. struct textoenstruct;
  2.  
  3. typedef textoenstruct *puntero_a_struct;
  4.  
  5. struct textoenstruct {
  6.  char caracteres[21];
  7.  nat longitud;
  8. };
  9.  
  10. puntero_a_struct palabra() {
  11. puntero_a_struct final = new textoenstruct[21];
  12. scanf("%c",final>caracteres);
  13. int i = 0;
  14. while (i != strlen(final->caracteres))
  15. {
  16. if (final->caracteres[i] == "\0")
  17. {
  18. int h = i;
  19. while (h < i)
  20. {
  21. final->caracteres[h] = "\0";
  22. h++;
  23. }
  24. i++;
  25. }
  26. }
  27. return final;
  28. }
  29.  

El problema es que no esta funcionando, y no se estoy haciendo mal, para mi tiene logica, pues, crea "textoenstruct", y al colocar "final->caracteres" en scanf, se coloca ahi la palabra, si se coloca "hola como estas" con el convierte desde la "c" hasta el final de la segunda palabra en "\0", ya que no se pueden achicar vectores la pense asi. Pero sigue sin funcionar


Título: Re: Problema al leer desde la bibliteca standar
Publicado por: ivancea96 en 15 Marzo 2017, 19:21 pm
scanf recibe como primer parámetro una cadena dependiendo de lo que quieras leer. %c es apra caracter. 1 caracter. %s es para una cadena. Prueba con %s.