|
Mostrar Mensajes
|
Páginas: [1] 2
|
1
|
Programación / Programación C/C++ / Duda con Archivos en C++
|
en: 29 Julio 2012, 01:18 am
|
Buenas, alguno sabe que sentencia puedo usar en C++ para verificar si cierto archivo existe y dependiendo de la respuesta hacer cierta accion? Basicamente lo que necesito es:
Si(Archivo_Existe_en_la_ruta) hago_algo() sino hago_otra_cosa()
He leido en varios sitios pero ninguno resuelve mi duda, de antemano gracias.
PD: No me refiero a si el archivo pudo ser abierto con exito o no, sino que si existe o no, gracias!!
|
|
|
2
|
Programación / Programación C/C++ / Re: [?] Error passing xxx as 'this' argument of xxx discards qualifiers
|
en: 5 Julio 2012, 18:56 pm
|
¡Buenas! Si mal no recuerdo, para que para poder utilizar funciones miembro sobre objetos constantes tienes que añadir el calificador const despues del prototipo de la funcion. Esto estara indicando que la funcion no modifica los atributos de la clase. Si una funcion modifica estos atributos no podras delararla constante, y no podras untilizarla sobre objetos constantes, pero los metodos get si que podras utilizarlos, por lo que los prototipos deberian de ser: int get_dia() const; int get_mes() const; int get_ano() const;
Prueba a hacer este cambio y nos cuentas. ¡Saludos! PD: Tambien tienes que añadir el const cuando implementes las fuciones. Efectivamente eso era, lo peor es que lo había hecho antes y no lo recordaba jaja, Muchas gracias!!
|
|
|
3
|
Programación / Programación C/C++ / [?] Error passing xxx as 'this' argument of xxx discards qualifiers
|
en: 5 Julio 2012, 18:23 pm
|
Estoy sobrecargando el operador de asignación en una clase fecha que he creado y me lanza este error. La primera vez compilo y me funciono perfecto, luego me empezo a aparecer este error y no tengo ni idea. Creo que el error viene dado por llamar como const a algo que no lo es, si me pueden ayudar se los agradeceria! #ifndef FECHA_H #define FECHA_H #include <iostream> using namespace std; class Fecha { //Atributos de la clase private: int dia,mes,ano; //Metodos de la clase public: Fecha() : dia(0),mes(0),ano(0){}; Fecha(int dia_,int mes_,int ano_) : dia(dia_),mes(mes_),ano(ano_){}; Fecha(Fecha &F); void set_dia(int dia_); void set_mes(int mes_); void set_ano(int ano_); int get_dia(); int get_mes(); int get_ano(); Fecha& operator=(const Fecha&f); // operador de asignación ~Fecha(); //Sobrecarga del operador << friend ostream& operator<<(ostream &os,const Fecha &F){ os << F.get_dia() << "/" << F.get_mes() << "/" << F.get_ano() << endl; return(os); } }; /* Definicion de metodos*/ //Modificar el dia void Fecha::set_dia(int dia_){dia = dia_;} //Modificar el mes void Fecha::set_mes(int mes_){mes = mes_;} //Modificar el ano void Fecha::set_ano(int ano_){ano = ano_;} //Obtener el dia int Fecha::get_dia(){return dia;} //Obtener el mes int Fecha::get_mes(){return mes;} //Obtener el ano int Fecha::get_ano(){return ano;} //Constructor copia Fecha::Fecha(Fecha &F) { dia = F.get_dia(); mes = F.get_mes(); ano = F.get_ano(); } //Operador de asignacion Fecha& Fecha::operator=(const Fecha&f){ if(this != &f){ this->set_dia(f.get_dia()); this->set_mes(f.get_mes()); this->set_ano(f.get_ano()); } return *this; } //Destructor Fecha::~Fecha(){} #endif //FECHA_H
|
|
|
4
|
Programación / Programación C/C++ / Re: Errores que no encuentro :c ayuda por favor
|
en: 1 Junio 2012, 00:10 am
|
Muchas gracias, este es el codigo de imprimir.h #ifndef IMPRIMIR_H #define IMPRIMIR_H void imprimir(articulo A); #endif
Y por si de casualidad lo necesitas, este es el de imprimir.c #include<stdio.h> void imprimir(articulo A) {printf("clave: %s\n Tipo: %s\n Color: %s\n Medida: %s\n Precio: %.2f",A.clave,A.tipo,A.descrip.color,A.descrip.medida,A.precio);
Bien, según lo que veo, el problema se suscita cuando le dices esto al compilador: #ifndef IMPRIMIR_H #define IMPRIMIR_H void imprimir(articulo A); #endif
"articulo" es una estructura que tu defines en el principal, pero este .h no conoce eso y por lo tanto no lo reconoce, no se como tienes estructurado todo tu código, pero deberías definir esa estructura "articulo" dentro de ese .h
|
|
|
7
|
Programación / Programación C/C++ / Re: (DUDA) Eliminar elementos de una lista
|
en: 25 Mayo 2012, 15:02 pm
|
Ferno esta en lo correcto, pero tu cometiste un ligero error en el segundo código que colocaste: while(aux->id != p->id) { ant = p; p = p->siguiente; } if(ant == pIni) { pIni = pIni->siguiente; free(ant); free(aux); cout<<"ELEMENTO 1 ELIMINADO"; cont--; Fijate que, en el caso de que el dato a eliminar sea el primero, p->id seria igual a aux->id, por lo que nunca entraria a ciclo while donde le asignas valor a ant, y luego comparas esa misma variable que todavia vale NULL por no entrar en ciclo, la comparacion debe quedar asi: Si no entro al ciclo, tu P no se movio y ese es el dato a eliminar.
|
|
|
8
|
Programación / Programación C/C++ / Re: Ayuda con el juego del gato
|
en: 20 Mayo 2012, 18:49 pm
|
De verdad que es muy difícil que pongas un código así y alguien venga y te diga todos los errores, pero en las primeras lineas de código pude notar que cometiste el siguiente error: Le estas pasando al procedimiento imprimir_tablero una matriz llamada gato: imprimir_tablero(char gato[MAX_FILA][MAX_COLUM]) y luego realizas la siguiente comparación: if((gato[j]=='X')||(gato[j]=='O')) La condición esta intentado comparar un vector "gato" que en realidad es una matriz. Me imagino que ese error se te repetirá muchas veces. Otra cosa, cuando usas prototipos es porque vas a colocar las funciones al final de tu código, si las vas a colocar arriba no es necesario, saludos.
|
|
|
|
|
|
|