|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Re: Duda al cerrar un archivo que fclose no pudo cerrar. -
|
en: 1 Marzo 2017, 19:45 pm
|
Buenas noches,tras haber leído el tema te dejo una solución a tu dilema,espero que con esto te ayude. El código y la explicación : #include <stdio.h> #include <stdlib.h> int main(int argc,char **argv){ char frase[] = "arequito, centro soguero del pais"; FILE *ptrFrase = NULL; if(!(ptrFrase = fopen("frase.txt", "w"))){ printf( "\n Error al abrir %s Para escribir. Finaliza el programa.", frase ); } if(fclose( ptrFrase ) == EOF ){ /*Fijate que según el link de documentacion "wikilibros.com",se explica que fclose devuelve 0 si se cierra correctamente, y en caso contrario devuelve EOF,por lo que si devuelve EOF,es cuando se tiene que entrar en este bucle. Con esto se comprueba si falla o no,ya que mostraria la frase de abajo si no hubiera logrado cerrarlo correctamente.*/ printf( "\n No se ha podido cerrar el fichero\n"); } return EXIT_SUCCESS; }
Un saludo. Anthony.
|
|
|
3
|
Programación / Programación C/C++ / Constructor de movimiento y asignacion de movimiento
|
en: 24 Febrero 2017, 14:42 pm
|
Buenas tardes,estoy haciendo una clase sencilla que ilustre como se definen el constructor de movimiento y la asignacion por movimento,pero me da un error tras indicar que no acepta && en el prototipo del constructor de mov. class Vector { int size; double *elementos; public: Vector(int tam); Vector(const Vector& vec); Vector& operator =(const Vector& v); Vector(Vector&& vec); //Ctor. de mov. ESTE METODO ME DA ERROR Vector& operator =(Vector&& v); //Ctor. de mov. ESTE TAMBIEN const double& operator[](const int i)const; double& operator [](const int i)const; int tam()const; ~Vector(); };
Por favor que alguien me aclare porque esta este error. Gracias de antemano. Un saludo.
|
|
|
4
|
Programación / Programación C/C++ / Re: como invertir un vector
|
en: 24 Febrero 2017, 14:38 pm
|
Buenos días, una forma sencilla de hacer ese algoritmo seria : 1º Ordenando el vector. 2º Mostrar los elemenos ordenados. Codigo: #include <stdio.h> #include <stdlib.h> int main() { int i,j,aux,vec[10]={4,6,5,-7,10,20,-30,60,25,15}; for(i = 0;i<10;i++) //Repetira el bucle interno 10 veces { for(j = 0;j<10;j++) //Este bucle posicionara al elemento i en el lugar que le corresponderia en la iteracion i. { if(vec[i]<vec[j]) //Hara un cambio de valores para ir dejando en i elemento menor en la posicion que le corresponde { aux = vec[i]; vec[i] = vec[j]; vec[j] = aux; } } } for(i = 0;i <10;i ++) printf(" %d ",vec [i ]); //Muestra return 0; }
Hay varios algoritmos de ordenación,he utilizado el que mejor se suele entender. Un saludo.
|
|
|
5
|
Programación / Programación C/C++ / Re: Programa que busca un número en una cifra
|
en: 28 Enero 2017, 18:15 pm
|
Saludos. Me pidieron un ejercicio igual que ese en clase hace 1 año,te mostraré el código para ver si te ayuda a aclararte. #include <stdio.h> #include <stdlib.h> int main() { int numero=0,propuesto=0; printf("Introduzca un numero mayor que cero,y luego uno desde 0 hasta 9 \n el primero sera usado de referencia y el segundo el que se \n busca.\n"); while(numero <1 || propuesto <1) scanf("%d %d",&numero ,&propuesto ); while(numero>0) { if(numero%10 == propuesto) { printf("El numero pertence a la cifra introducida \n"); numero = 0; propuesto = 0; } else numero = numero/10; } if(propuesto ) printf("La cifra propuesta no existe en el numero\n"); return 0; }
Un saludo.
|
|
|
6
|
Programación / Programación C/C++ / Re: [C]: Scanf punteros (como si fuese P[i][j])
|
en: 17 Diciembre 2016, 19:48 pm
|
En ese caso habría que poner
El compilador a ver que es una variable puntero,la guardaría de forma correcta. PD: El puntero a enteros datos, esta para dirigirse a una dirección de memoria que contiene el entero a utilizar o modificar(o apunta hacia el primer elemento de la matriz). Espero haberte ayudado. Un saludo. Anthony.
|
|
|
8
|
Programación / Programación C/C++ / Re: Devolver un Array
|
en: 14 Diciembre 2016, 19:34 pm
|
Para lograr el objetivo que propones,la forma mas habitual es usar el paso por referencia. Con esto usaremos un vector creado en main y poder variar sus datos en funciones o procedimiento,espero que hayas visto el paso por referencia y como se trabaja con el.Un ejemplo:
C++:
#include <iostream> using namespace std; //incluir iostream y esta instruccion son lo mas habitual en c++ //Supongamos un procedimiento que trabajara con el vector que le transfiero. void cambiar_valores(int* vec); //Recibira la direccion de memoria del primer elemento //de vec. int main() { int vector[5]={0,1,2,3,4}; cambiar_valores(vector); //Se transfiere el vector al procedimiento. cout<<vector[0]<<vector[1]<<vector[2]<<vector[3]<<vector[4]<<endl; //Se mostraran los valores cambiados. return 0; } void cambiar_valores(int* v) //Al haber paso por referencia,los datos cambiado de / //v,permaneceran tras el procedimiento. { //Cambio de los valores v[0] = 100; v[1] = 200; v[2]=300; v[3]=400; v[4]=500; }
X--------------------X Espero haberte ayudado. Un saludo. Anthony.[/size] Mod: Los códigos deben ir en etiquetas GeSHi
|
|
|
9
|
Programación / Programación C/C++ / Re: Listas y Archivos en C++
|
en: 14 Diciembre 2016, 19:13 pm
|
Pues,una manera es hacer un Pila que contenga los elementos(de manera dinamica o pseudostatica) y que esta vaya guardando las puntuaciones de los concursantes. La biblioteca veector tambien tambien una gran opcion si no deseas implementar. A la hora de guardar los datos en un archivo txt ,lo mas usual seria emplear la biblioteca fstream y emplear la clase ostream o fstream. Un saludo. Anthony.
|
|
|
10
|
Programación / Programación C/C++ / ¿Alguien podría ayudarme con este fragmento de código?
|
en: 14 Diciembre 2016, 19:03 pm
|
Quisiera usar este fragmento,el caso es que necesito implementar esta estructura para cualquier tipo de dato,y usar posicon como un tipo de dato que apunte a nodos que pide el problema. Gracias de antemano. template<typename T> struct nodo { T elemento; nodo* anterior; nodo* siguiente; nodo(const T& contenido,nodo* a=POS_NULA,nodo* b=POS_NULA) : elemento(contenido),anterior(a),siguiente(b) {}; }; template<typename T> typedef nodo* posicion;
Mod: Los códigos deben ir en etiquetas GeSHi
|
|
|
|
|
|
|