Programación General > Visual C++
Función Que Devuelve Una Cadena.
dayler:
hola
tengo problemas a la hora de implementar la siguiente función:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
char leerPantalla()
{
char nombre[20];
scanf("%s",nombre);
return *nombre;
}
int main()
{
int *nombre;
cout<<"NOMBRE:"<<endl;
*nombre=leerPantalla();
cout<<nombre<<endl;
system("pause");
return 0;
}
el programa debe de leer una cadena de tecladoydesplegarla en pantalla.
JuanK:
--- Código: Text ---#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std; char leerPantalla() { char nombre[20]; scanf("%s",nombre); return *nombre; }
error 1: estas devolviendo un apuntador a char
--- Código: Text ---return *nombre; pero la funcion dice que solo devuelves un char
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->char leerPantalla()<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Sin contar que no le estas indicando al scanf que solo capture los 20 caracteres por seguridad..
error 2 :
--- Código: Text --- int *nombre; *nombre=leerPantalla();
si la funcion devuelve char ( aunque deberia ser char*) porque recibes los datos en un int* ?
shakka:
Y que problemas tienes?
Algo que noto es que la funcion leerPantalla() devuelve por cola un caracter y al invocarla estas recogiendo el resultado con puntero a entero.
Porque no la devuelves por boca.
Es decir:
--- Código: Text ---//la funcion no es nada funcional//(valga la redundancia, ya que solamente usa scanf... pero bueno me imagino//que es para practicar con funciones) void leerPantalla(char *nombre){ scanf("%s",nombre);} y la invocas ... char *cadena; leerPantalla(cadena);
dayler:
hola otra ves soy yo...
bueno si que respondieron rápido, primeramte indicar que la introducción de
int *nombre, fuen involuntaria, lo que en realidad iva era char *nombre,
beuno de todas formas les agradesco a todos los que se tomaron la molestia de responderme, lo que en realidad debia de acer la función es retornar una cadena, no importa de donde, pero gracias a dios descubri la función 'gets()', que soluciona mi problema, nuevamente gracias... y hasta pronto. :)
Geo:
Ya que estás con Visual C++, lo mejor es que no uses gets y en su lugar emplees gets_s:
gets_s (CRT)
O también pasarte al uso de string :).
Saludos,
JJ (Geo).
Navegación
[#] Página Siguiente
Ir a la versión completa