|
Mostrar Temas
|
Páginas: 1 2 3 [4] 5 6
|
34
|
Programación / Programación C/C++ / Modificar un archivo de texto
|
en: 27 Febrero 2014, 22:38 pm
|
Hola, este es mi codigo #include <stdio.h> #include <string.h> int main( int argc, char* args[] ) { FILE *ptr; fpos_t pos; char palabra_usuario[50] = {}; char palabra_archivo[50] = {}; char ch; int n = 0; bool encontrado = false; ptr = fopen("prueba.txt", "r+"); if( ptr ) { printf("Escriba lo que desea modificar: "); fgets(palabra_usuario, 50, stdin); while( !feof(ptr) || !encontrado ) { fgetpos( ptr, &pos ); do { ch = fgetc(ptr); palabra_archivo[n++] = ch; }while( ch != '\n' ); palabra_archivo[n] = '\0'; n = 0; if( strcmp(palabra_usuario, palabra_archivo) == 0 ) { printf("Su palabra: %s Palabra encontrada: %s\n\n", palabra_usuario, palabra_archivo); printf("Escriba por lo que lo quiera cambiar: "); fgets(palabra_usuario, 50, stdin); fsetpos(ptr,&pos); fprintf(ptr, "%s", palabra_usuario); encontrado = true; } } if( !encontrado ) printf("No se encontro esa palabra"); } fclose(ptr); return 0; }
El programa encuentra efectivamente la palabra del archivo de texto (Nota: el archivo de texto ya existe), pero cuando intento agregar la nueva palabra para modificarla el programa muestra un error. Gracias por la ayuda de antemano.
|
|
|
37
|
Foros Generales / Foro Libre / Nosotros todo el tiempo estamos sumando infinitos
|
en: 16 Febrero 2014, 19:07 pm
|
Leyendo por encima sobre Teoria de Conjuntos, George Cantor decia que existen infinitos mas grandes que otros, hasta que me percate de algo ( ojo, no se si esto lo explica él ), imaginense un rango entre 0 y 1, sabiendo que los numeros reales son inifinitos, se podria escribir 0.00000000009 y aun asi no llegaria a 0 al igual que 0.999999999 y no llegariamos a uno, entonces podemos decir que tanto 0 como 1 vienen a representar menos infinito y mas infinito respectivamente. Espero que tengan alguna opinion respecto a esto =)
|
|
|
38
|
Foros Generales / Foro Libre / ¿ Es nuestro universo un simulador generado por un "Supercomputador" ?
|
en: 15 Febrero 2014, 00:38 am
|
Buenas noches amigos, abri este topico porque me entró una curiosidad, ustedes veran que el hombre a traves del tiempo con su manipulacion del computador ha logrado diseñar simuladores cada vez mas sorprendentes, y luego de ver el programa llamado "El juego de la vida" y la forma en que funciona me puse a pensar, ¿Seria posible contar con un computador con una cantidad de memoria lo suficientemente grande y diseñar un simulador con leyes parecidas al "Juego de la vida" y que se creasen condiciones ideales para que esos "puntos" (digamos que serian particula, por asi decirlo), y dejar que ese programa evolucione indefinidamente, hasta tal punto que se formen estructuras tan complicadas que simulen vidas primitivas dentro de ese universo, y aun mas adelante seres "inteligentes" , y mas sorprendente aun esos seres pudiesen crear herramientas, tales como una computadora y a su vez ellos hacer simuladores , y su simulaciones sucesivamente? Imagino que la cantidad de memoria seria abismal y contar con un tiempo exageradamente extenso, pero mi punto es ese, si teóricamente se pudiese diseñar algo asi ¿ No creen que nosotros provengamos de algun "Supercomputador" el cual nos simula, y a su vez ese ente que nos programo seria tambien simulado por un "Supercomputador" mas grande, y asi indefinidamente? Entonces yo llego a mi conclusion que cada ente en su universo local tiene un creador en universo superior, todo esto lo pense por mi analogia de como nuestro simulador podria diseñar otros simuladores.
Espero alguien tenga una idea al respecto a esto y me corrija en algo si estoy fallando en mi analisis =)
|
|
|
39
|
Programación / Programación C/C++ / Problema manejo de Pila
|
en: 12 Febrero 2014, 23:47 pm
|
Hola que tal estoy teniendo algunos problemas para mostrar los valores de una pila una vez se ha borrado un valor, y posteriormente luego cuando voy a borrar los nodos restantes. Aqui va el codigo, espero una ayuda gracias: #include <stdio.h> #include <stdlib.h> typedef struct nodo { int num; struct nodo *sig; }Nodo; typedef struct pila { Nodo *primero; Nodo *ultimo; }Pila; void resetPila( Pila * ); int estaVacia( Pila * ); void agregarValor( Pila *, int ); void mostrarPila( Pila * ); int borrarTope( Pila * ); void borrarTodo( Pila * ); int main( int argc, char* args[] ) { Pila miPila; int valor, opcion; resetPila( &miPila ); do { printf("Ingrese una opcion\n"); printf("\n1.- Ingresar numero a la pila"); printf("\n2.- Mostrar numeros en la pila"); printf("\n3.- Eliminar tope de la pila"); switch( opcion ) { case 1: printf("Ingrese el numero para la pila: "); agregarValor( &miPila, valor ); break; case 2: if( estaVacia( &miPila ) == 1 ) printf("\nLa pila esta vacia"); else mostrarPila( &miPila ); break; case 3: if( estaVacia( &miPila ) == 1 ) printf("\nLa pila esta vacia"); else printf("Se elimino el numero %d\n\n", borrarTope ( &miPila )); break; case 4: if( estaVacia( &miPila ) == 0 ) borrarTodo( &miPila ); break; } }while( opcion != 4 ); return 0; } void resetPila( Pila *miPila ) { miPila->primero = NULL; miPila->ultimo = NULL; } int estaVacia( Pila *miPila ) { if( miPila->primero == NULL ) return 1; else return 0; } void agregarValor( Pila *miPila, int valor ) { Nodo *nodo; nodo = (Nodo *)malloc(sizeof(Nodo )); nodo->num = valor; nodo->sig = NULL; if( estaVacia( miPila ) == 1 ) miPila->primero = nodo; else miPila->ultimo->sig = nodo; miPila->ultimo = nodo; } void mostrarPila( Pila *miPila ) { Nodo *nodo; for( nodo = miPila->primero; nodo != NULL; nodo = nodo->sig ) } int borrarTope( Pila *miPila ) { Nodo *nodo; int valor; if( miPila->ultimo == miPila->primero ) { valor = miPila->ultimo->num; } else { nodo = miPila->primero; while( nodo->sig != miPila->ultimo ) nodo = nodo->sig; valor = miPila->ultimo->num; miPila->ultimo = nodo; } return valor; } void borrarTodo( Pila *miPila ) { Nodo *nodo; nodo = miPila->primero->sig; while( miPila->ultimo != NULL ) { miPila->primero = nodo; if( nodo != miPila->ultimo ) nodo = nodo->sig; } }
|
|
|
40
|
Programación / Programación C/C++ / malloc dentro de una funcion
|
en: 18 Diciembre 2013, 18:19 pm
|
Voy directo al codigo: void generar( int **arreglo, int fil, int col ) { int i; arreglo = (int **)malloc(fil*sizeof(int *)); for( i = 0; i < fil; i++ ) arreglo[i] = (int *)malloc(col * sizeof(int)); }
Ok, luego de haber generado mi arreglo multidimensional y lo quiero mostrar con un ciclo dentro del main, los valores no se muestran sino que sale un error de windows, en cambio si muestro los valores dentro de la misma funcion, si lo hace. Imagino que se deben crear variables temporales solamente dentro de la funcion y por eso no se muestran en el main, y quisiera saber si existe una manera de poder reservar esa memoria y mostrarla en main. Gracias
|
|
|
|
|
|
|