Autor
|
Tema: [Solucionado] Insertar función en codigo (Leído 4,009 veces)
|
tonilogar
Desconectado
Mensajes: 55
|
Este es el código de error que aparece, cuando intento añadir una función al código.K:\programacion\c++\pepeluis03\pepeluisFuente.cpp||In function 'int main()':| K:\programacion\c++\pepeluis03\pepeluisFuente.cpp|13|error: 'EntraDatos' was not declared in this scope| ||=== Build finished: 1 errors, 0 warnings ===| Función que quiero añadir:void EntraDatos() { //Variable de función string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0);//Cuando fichero sea diferente a 0 sigue preguntando [color=navy]He creado la función por separado con el fichero header:[/color] #include <iostream> #include <string> #include <fstream> using namespace std; void EntraDatos(); [color=navy]Con el fichero de las funciones.[/color]# include <iostream> #include <string> #include <fstream> #include <K:\programacion\c++\pepeluis03\pepeluis.h> using namespace std; void EntraDatos() { //Variable de función string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0);//Cuando fichero sea diferente a 0 sigue preguntando [color=navy]Y el fichero con la función main:[/color] #include <iostream> #include <string> #include <fstream> using namespace std; #include <E:\usuaris\a.lopez.g\programacion\c++\pepeluis03\pepeluis.h> int main() { EntraDatos(); cin.get(); return 0; }
De esta forma la función me funciona “valga la redundancia” correctamente.
Pero cuando la inserto en este código me sale el error antes comentado.Fichero Header: //pepeluis.h#include <iostream> #include <string> #include <fstream> using namespace std; string MenuPreguntas(); string ConversorImagenes(); string ImagenesTransformar(); void EntraDatos(); [color=navy]Fichero de funciones: //pepeluis.cpp[/color] #include <iostream> #include <string> #include <fstream> using namespace std; //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string MenuPreguntas() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") { cout << endl << endl; cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl; cout << "1: Conversor d'imatges" << endl<< endl; cout << "2: Crear, tallar mosaics" << endl<< endl; cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl; cout << "4: Mapa de diferencies" << endl<< endl; cout << "5: Treballar amb canals" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string ConversorImagenes() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3"&& Elegir!="a" && Elegir!="q") { cout << endl << endl; cout << "-----coversor .RF .TIF .JPG" << endl << endl; cout << "-----TRIAR OPCIO" << endl << endl; cout << "1: Seleccionar imatges" << endl<< endl; cout << "2: Seleccionar llistat d'imatges" << endl<< endl; cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl; cout << "A: Tornar al menu anterior" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// void EntraDatos() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0); }
Fichero de la función main:
pepeluisFuente.cpp#include <iostream> #include <string> #include <fstream> #include <K:\programacion\c++\pepeluis02\pepeluis.h> using namespace std; string VariableMenuPreguntas; string VariableConversorImagenes; int main() { EntraDatos(); VariableMenuPreguntas=MenuPreguntas(); if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes(); else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2"; else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3"; else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4"; else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5"; if (VariableConversorImagenes == "1") cout << "VariableConversorImagenes 1"; else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2"; else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3"; else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4"; else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5"; else if (VariableConversorImagenes == "a") cout << "VariableConversorImagenes a"; return 0; }
He probado mil triquiñuelas y no se que es lo que pasa, según el error la función no está declarada ¿norrrrr?
Un saludo y gracias por vuestro tiempo.
|
|
« Última modificación: 9 Junio 2011, 00:35 am por tonilogar »
|
En línea
|
No porque discrepe de tu opinión intento ofenderte.
Un saludo a todos y gracias por vuestro tiempo.
|
|
|
Queta
Desconectado
Mensajes: 267
|
Antes de todo, veo que tienes los archivos .cpp y .h en diferentes carpetas y cosas por el estilo; sería bueno que los pusieras todos en una misma, así no tendrías que entrar toda la ruta y bueno, lógicamente, es un tema de organización y rapidez. Tu error es simple: en el código principal incluyes el archivo de cabecera entre los signos <> y lo debes hacer entre comillas dobles ( http://en.wikipedia.org/wiki/Header_file). Y ya como plus extra, no hace falta incluir las librerías en esta cabecera, solamente en los .cpp.
|
|
« Última modificación: 31 Mayo 2011, 14:25 pm por Queta »
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
tonilogar
Desconectado
Mensajes: 55
|
Gracias Queta, esta noche pruebo y comento.
Un saludo.
|
|
|
En línea
|
No porque discrepe de tu opinión intento ofenderte.
Un saludo a todos y gracias por vuestro tiempo.
|
|
|
tonilogar
Desconectado
Mensajes: 55
|
Como decía Queta los includes al fichero de cabecera y al fichero de las definiciones de función, estaban mal.
A parte que algún que otro despropósito del código.
Aquí dejo el código con la funciona en su sitio.Fichero header:#ifndef PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks #define PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks //Declaracion de funciones string MenuPreguntas(); string ConversorImagenes(); void EntraDatos(); #endif // PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks
Fichero definición de funciones//CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string MenuPreguntas() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") { cout << endl << endl; cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl; cout << "1: Conversor d'imatges" << endl<< endl; cout << "2: Crear, tallar mosaics" << endl<< endl; cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl; cout << "4: Mapa de diferencies" << endl<< endl; cout << "5: Treballar amb canals" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string ConversorImagenes() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3"&& Elegir!="a" && Elegir!="q") { cout << endl << endl; cout << "-----coversor .RF .TIF .JPG" << endl << endl; cout << "-----TRIAR OPCIO" << endl << endl; cout << "1: Seleccionar imatges" << endl<< endl; cout << "2: Seleccionar llistat d'imatges" << endl<< endl; cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl; cout << "A: Tornar al menu anterior" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// void EntraDatos() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0); cout << endl<< endl; cout << fichero; }
Fichero main#include <iostream> #include <string> #include <fstream> using namespace std; #include "ProyectoBase.hpp"//Fichero header #include "ProyectoBase.cpp" //Fichero de funciones //Variables string VariableMenuPreguntas; string VariableConversorImagenes; int main() { VariableMenuPreguntas=MenuPreguntas(); if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes(); else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2"; else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3"; else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4"; else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5"; if (VariableConversorImagenes == "1") EntraDatos(); else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2"; else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3"; else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4"; else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5"; cin.get(); return 0;
Y ahora a seguir con el programática.
Gracias por vuestro tiempo y ayuda.
|
|
« Última modificación: 9 Junio 2011, 00:37 am por tonilogar »
|
En línea
|
No porque discrepe de tu opinión intento ofenderte.
Un saludo a todos y gracias por vuestro tiempo.
|
|
|
tonilogar
Desconectado
Mensajes: 55
|
Pues de nuevo con el getline.
La ultima función "void ImagenEntrada();".
Lo único que hace es pedir que entre datos y cuando tecleo return sale del while. Probando en un fichero separado va perfecto.#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0); cin.get(); return 0; }
Pero a la que lo adjunto en un fichero con mas código.
Cuando entro el primer dato me echa del programa.
Por lo que leído el buffer del cin se queda con algún dato, y tengo que borrar el buffer. ¿me equivoco?
Lo he intentado con flush, ignore, cleaner etc pero no logro dar con el código correcto.
Estoy equivocado y no tiene que ver el buffer de cin.
Aquí dejo el código.Fichero header:#ifndef PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks #define PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks //Declaracion de funciones string MenuPreguntas(); string ConversorImagenes(); void EntraDatos(); #endif // PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks
Fichero definición de funciones//CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string MenuPreguntas() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") { cout << endl << endl; cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl; cout << "1: Conversor d'imatges" << endl<< endl; cout << "2: Crear, tallar mosaics" << endl<< endl; cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl; cout << "4: Mapa de diferencies" << endl<< endl; cout << "5: Treballar amb canals" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// string ConversorImagenes() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string Elegir; while (Elegir!="1" && Elegir!="2" && Elegir!="3"&& Elegir!="a" && Elegir!="q") { cout << endl << endl; cout << "-----coversor .RF .TIF .JPG" << endl << endl; cout << "-----TRIAR OPCIO" << endl << endl; cout << "1: Seleccionar imatges" << endl<< endl; cout << "2: Seleccionar llistat d'imatges" << endl<< endl; cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl; cout << "A: Tornar al menu anterior" << endl<< endl; cout << "Q: Sortir de l'aplicacio" << endl<< endl; cout << "Seleciona opcion :"<< endl<< endl; cin >> Elegir; if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula). else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula). else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA"; } cout<< endl; cout<< endl; return Elegir; } //CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// void EntraDatos() { //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0); cout << endl<< endl; cout << fichero; }
Fichero main#include <iostream> #include <string> #include <fstream> using namespace std; #include "ProyectoBase.hpp"//Fichero header #include "ProyectoBase.cpp" //Fichero de funciones //Variables string VariableMenuPreguntas; string VariableConversorImagenes; int main() { VariableMenuPreguntas=MenuPreguntas(); if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes(); else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2"; else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3"; else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4"; else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5"; if (VariableConversorImagenes == "1") EntraDatos(); else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2"; else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3"; else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4"; else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5"; cin.get(); return 0;
Un saludo y gracias por vuestro tiempo.
|
|
« Última modificación: 9 Junio 2011, 00:40 am por tonilogar »
|
En línea
|
No porque discrepe de tu opinión intento ofenderte.
Un saludo a todos y gracias por vuestro tiempo.
|
|
|
tonilogar
Desconectado
Mensajes: 55
|
Arreglado. Mira que era sencillo. Poco a poco/CUERPO DE FUNCION///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// void ImagenEntrada() { std::cin.ignore(); //VARIABLES DE FUNCION///////////////////////////////////////////////////////////////////////// string fichero; do { cout << "entra datos"; cout << endl<< endl; getline (cin,fichero); } while (fichero.length()!=0); }
Un saludo a todos
|
|
« Última modificación: 9 Junio 2011, 00:41 am por tonilogar »
|
En línea
|
No porque discrepe de tu opinión intento ofenderte.
Un saludo a todos y gracias por vuestro tiempo.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ollydbg... ¿Como insertar un codigo?
Ingeniería Inversa
|
>FedeX<
|
5
|
4,377
|
30 Enero 2007, 01:12 am
por karmany
|
|
|
una ayuda para insertar codigo
Programación Visual Basic
|
Sai-To
|
2
|
1,835
|
25 Febrero 2008, 12:43 pm
por ~~
|
|
|
Insertar pequeña función en este código
Programación C/C++
|
Soir
|
2
|
2,437
|
30 Agosto 2010, 15:23 pm
por MazarD
|
|
|
Insertar codigo dentro de una sección del crypter
Análisis y Diseño de Malware
|
lucasluks1004
|
4
|
3,972
|
25 Agosto 2011, 03:43 am
por lucasluks1004
|
|
|
Insertar iframe seleccionando porcion de codigo de la web a mostrar
Desarrollo Web
|
Graphixx
|
1
|
3,299
|
20 Abril 2012, 14:33 pm
por EFEX
|
|