Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Juan821

#11
Quiero saber porque luego de llegar a funciones si pasa a la funcion his o cualquiera no pasa nada en vez de imprimirme mi documento

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
FILE *doc;
using namespace std;
int His();
int Cien();
int Depor();
int Geo();
int c=1;
int main()
{
int s,tot,u=0;
srand(time(NULL));
while (c==1)
{
system ("cls");
printf("Presione cualquier tecla para escoger su categoria");
getch();
s=rand()% 4 + 1;

switch (s)
{
case 1:
{
His();
break;
}
case 2:
{
Cien();
break;
}
case 3:
{
Depor();
break;
}
case 4:
{
Geo();
break;
}
}
}
system ("pause");
return 0;
}

int His()
{
int x,i=1,w;
system ("cls");
printf("\n <===============Su categoria es Historia===============> \n");
printf("\n Presione cualquier tecla para escoger su pregunta \n");
getch();
doc = fopen("D:\prueba.txt","r");
if(doc == NULL)
{
printf("\n error en la apertura del archivo \n");
system ("pause");
return 1;
}
while((w=getc(doc)) != EOF);
{
;
if (w =='\n')
{
printf ("\n");
i=1+1;
}
else printf("%c",w);
}
fclose(doc);
return 0;
}
int Depor()
{
int x,i=1,w;
system ("cls");
printf("\n <===============Su categoria es Ciencias===============> \n");
printf("\n Presione cualquier tecla para escoger su pregunta \n");
getch();
doc = fopen("D:\prueba.txt","r");
if(doc == NULL)
{
printf("\n error en la apertura del archivo \n");
system ("pause");
return 1;
}
while((w=getc(doc)) != EOF);
{
w=getc(doc);
if (w =='\n')
{
printf ("\n");
i=1+1;
}
else printf("%c",w);
}
fclose(doc);
return 0;
}
int Cien()
{
int x,i=1,w;
system ("cls");
printf("\n <===============Su categoria es Deportes===============> \n");
printf("\n Presione cualquier tecla para escoger su pregunta \n");
getch();
doc = fopen("D:\prueba.txt","r");
if(doc == NULL)
{
printf("\n error en la apertura del archivo \n");
system ("pause");
return 1;
}
while(i<=5)
{
while((w=getc(doc)) != EOF);
if (w =='\n')
{
printf ("\n");
i=1+1;
}
else printf("%c",w);
}
fclose(doc);
return 0;
}
int Geo()
{
int x,i=1,w;
system ("cls");
printf("\n <===============Su categoria es Geografia===============> \n");
printf("\n Presione cualquier tecla para escoger su pregunta \n");
getch();
doc = fopen("D:\prueba.txt","r");
if(doc == NULL)
{
printf("\n error en la apertura del archivo \n");
system ("pause");
return 1;
}
while(i<=5)
{
while((w=getc(doc)) != EOF);
if (w =='\n')
{
printf ("\n");
i=1+1;
}
else printf("%c",w);
}
fclose(doc);
return 0;
}


#12
Programación C/C++ / Re: Ayuda!
25 Junio 2014, 23:57 PM
Ya hice lo que me dijiste pero persiste el error incluso puse para cuando doc sea null porque ahora me pone siempre error en la apertura del archivo, pero dime como soluciono lo del fichero y la librería la necesito para que se pause el programa porque con system pause no me gusta lo del printf no lo uso porque no me deja imprimir, la variable la necesito porque si responde una pregunta mal, hare que se salga del ciclo el programa todavia no esta completo

#13
Tengo un problema con este codigo
Código (cpp) [Seleccionar]

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
FILE *doc;
using namespace std;
int His();
int Cien();
int Depor();
int Geo();
int c=1;
int main()
{
int s,tot,u=0;
srand(time(NULL));
while (c==1)
{
system ("cls");
cout<<"Presione cualquier tecla para escoger su categoria"<<endl;
getch();
s=rand()% 4 + 1;

switch (s)
{
case 1:
{
His();
break;
}
case 2:
{
Cien();
break;
}
case 3:
{
Depor();
break;
}
case 4:
{
Geo();
break;
}
}
}
system ("pause");
return 0;
}

int His()
{
int x,i=1,w;
system ("cls");
cout<<"<===============Su categoria es Historia===============>"<<endl;
cout<<"Presione cualquier tecla para escoger su pregunta"<<endl;
getch();
doc = fopen("C:\Users\HERNAN\Desktop\prueba.txt","r");
while(i<=5)
w=getc(doc);
if (w =='\n') printf ("\n");
else
printf("%c",w);
fclose(doc);
return 0;
}
int Depor()
{
int x,i=1,w;
system ("cls");
cout<<"<===============Su categoria es Ciencia===============>"<<endl;
cout<<"Presione cualquier tecla para escoger su pregunta"<<endl;
getch();
doc = fopen("C:\Users\HERNAN\Desktop\prueba.txt","r");
while(i<=5)
w=getc(doc);
if (w =='\n') printf ("\n");
else
printf("%c",w);
fclose(doc);
return 0;
}
int Cien()
{
int x,i=1,w;
system ("cls");
cout<<"<===============Su categoria es Deportes===============>"<<endl;
cout<<"Presione cualquier tecla para escoger su pregunta"<<endl;
getch();
doc = fopen("C:\Users\HERNAN\Desktop\prueba.txt","r");
while(i<=5)
w=getc(doc);
if (w =='\n') printf ("\n");
else
printf("%c",w);
fclose(doc);
return 0;
}
int Geo()
{
int x,i=1,w;
system ("cls");
cout<<"<===============Su categoria es Geografia===============>"<<endl;
cout<<"Presione cualquier tecla para escoger su pregunta"<<endl;
getch();
doc = fopen("C:\Users\HERNAN\Desktop\prueba.txt","r");
while(i<=5)
w=getc(doc);
if (w =='\n') printf ("\n");
else
printf("%c",w);
fclose(doc);
return 0;
}



El problema en la ejecución es este



[MOD] para publicar código, usa la etiqueta GeShi correspondiente. Gracias.

Debes poner titulos descriptivos del tema, "Ayuda!" no lo es, leete las Reglas del Foro.

#14
Cita de: engel lex en  5 Junio 2014, 05:38 AM
si, mi intencion exactamene es que lo hagas facil, un txt con block de notas y listo XD

solo necesitas strings y leer archivo...

necesito ejemplos no encuentro los ejemplos de los codigos que se necesitan es para un proyecto perdona la insistencia.
#15
Cita de: engel lex en  5 Junio 2014, 05:31 AM
no seas flojo! XD piensa un poco! podrías hacerlo modificando mi explicacion y documento! XD

-GEOGRAFIA
¿Cual es la capital de iran?
europa
america
teheran*
francia
¿en que pais nacio napoleon?
jabon
elefante
francia*
al otro lado del mar
-HISTORIA
¿en que año nacio Simon Bolivar?
58896 de la segunda era del del imperio estela
1000ac
tocino
1783dc*
¿en que año murio Franco?
1
2*
3
4
-CIENCIA
¿con que otro nombre se conoce el nitrotolueno?
ntt
tnt*
qrx
tjv
¿cuantos atomos exactamente hay en el planeta tierra?
42*
10e100
la tuya por si acaso
npi


el codigo en lugar de moverse de 1 en 1 para buscar la pregunta al azar, se mueve de 1*4 en 1*4 para buscar la pregunta al azar, las siguientes 4 lineas son las opciones y si consigue un asterisco en una linea esa es la verdadera (claro está no vas a mostrar el asterisco)
jajjaa si yo pense eso esto se haria con blocs de notas estos codigos los buscare en internet muchas gracias si estoy mas avanzado en estos codigos te puedo consultar par cosas que me surgen en mi mente luego si no las soluciono?
#16
Cita de: engel lex en  5 Junio 2014, 05:20 AM
aquí hay un ejemplo
Código (cpp) [Seleccionar]
#include <iostream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <cstdlib>
#include <sqlite3.h> /* incluimos la cabecera de la libreria libsqlite3*/

using namespace std;

int main(int argc, char *argv[])
{
   sqlite3 *db;                /* Definimos un puntero a la base de datos */
   sqlite3_stmt *resultado;    /* Definimos un puntero a la respuesta de la consulta*/
   int msg;                    /* valor de retorno de las sentencias */
   string sentencia;           /* string para las sentencias */
   const char* siguiente;      /* puntero a la siguiente sentencia */
   char* error;                /* variable para el mensaje de error */

   msg = sqlite3_open("pucara.db",&db);    /* creo el archivo para la base de datos */
   if (msg!=SQLITE_OK)                     /* verifico si hay error */
   {
       cout << "Error al crear la base de datosn" << endl;
       exit(1);
   }

   sentencia = "DROP TABLE IF EXISTS hosts;";  /* compongo un sentencia para crear la base de datos*/
   sentencia += "CREATE TABLE hosts (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ip TEXT NOT NULL, mac TEXT NOT NULL, nombre TEXT);";
   msg = sqlite3_exec(db,sentencia.c_str(),NULL,NULL,&error);  /* ejecuto la sentencia */
   if (msg!=SQLITE_OK)     /* verifico si hay error */
   {
       cout << error << endl;
       exit(2);
   }

   sentencia = "insert into hosts (id, ip, mac) values ('1', '192.168.0.1', '00:27:0e:00:00:00');"; /* compongo una nueva sentencias */
   msg = sqlite3_exec(db,sentencia.c_str(),NULL,NULL,&error);  /* ejecuto la sentencia */
   if (msg!=SQLITE_OK)     /* verifico si hay error */
   {
       cout << error << endl;
       exit(2);
   }

   sentencia = "SELECT * FROM hosts ORDER BY ip;"; /* compongo una sentencia de consulta */
   msg = sqlite3_prepare(db,sentencia.c_str(),sentencia.length(),&resultado,&siguiente);   /* ejecuto la sentencia */
   if (msg!=SQLITE_OK) /* verifico si hay error */
   {
       cout << "Error en la consulta" << endl;
       exit(3);
   }

   while (sqlite3_step(resultado)==SQLITE_ROW) /* imprimo el resultado de la consulta */
   {
       cout << sqlite3_column_int(resultado, 0) << " | ";
       cout << sqlite3_column_text(resultado, 1) << " | ";
       cout << sqlite3_column_text(resultado, 2) << endl;
   }

   sqlite3_close(db);      /* cierro la base de datos*/
   return 0;


solo te tienes que bajar las librerias de sql lite (creo que son estas) y en el linker -lsqlite3


la otra opcion más discreta simple y sensata es crear un archivo de texto y componerlo algo como


-GEOGRAFIA
¿Cual es la capital de iran?
¿en que pais nacio napoleon?
-HISTORIA
¿en que año nacio Simon Bolivar?
¿en que año murio Franco?
-CIENCIA
¿con que otro nombre se conoce el nitrotolueno?
¿cuantos atomos exactamente hay en el planeta tierra?

(fíjate que todo sin acento, si no tendrás que implantar métodos para manejarlos)

en este caso usas getline para ir recorriendo el texto linea a linea, hasta conseguir por ejemplo "-GEOGRAFIA" luego con un numero aleatorio (en mi caso del 1 al 2) es la cantidad de linea a avanzar... si es 2, haces 2 veces getline para obtener la segunda pregunta...
pero en el ultimo caso cuales serian las respuestas eso es lo que hay que definir
#17
Si la otra seria extender el codigo a 500000 lineas para poner las preguntas a punta ifs o cases jajajajajaja pero no jajajaja pero las matrices cuantos caracteres aceptan solo uno?
#18
Cita de: engel lex en  5 Junio 2014, 04:52 AM
necesitas toda una conexión a base de datos, o un simple programa con 4 opciones de respuesta?

que sabes de c++? que llevas hecho?
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
using namespace std;
int His();
int   Cien();
int Depor();
int Geo();
int c=1;
int main()
   {
      int s,tot,u=0;
      srand(time(NULL));
       while (c==1)
      {
      cout<<"Presione cualquier tecla para escoger su categoria"<<endl;
      getch();
      s=rand()% 4 + 1;
      
      switch (s)
      {
      case 1:
         {
            His();
            break;
         }
      case 2:
         {
             Cien();
            break;
         }
      case 3:
         {
             Depor();
            break;
         }
      case 4:
         {
            Geo();
            break;
         }
      }
      }
      system ("pause");
      return 0;
   }

int His()
{
   system ("cls");
   cout<<"<===============Su categoria es historia===============>"<<endl;
   cout<<"Presione cualquier tecla para darle su pregunta"<<endl;
   getch();
   return 0;
}
int Depor()
{
   system ("cls");
   cout<<"<===============Su categoria es Ciencia===============>"<<endl;
   cout<<"Presione cualquier tecla para darle su pregunta"<<endl;
   getch();
   return 0;
}
int Cien()
{
   system ("cls");
   cout<<"<===============Su categoria es Deportes===============>"<<endl;
   cout<<"Presione cualquier tecla darle su pregunta"<<endl;
   getch();
   return 0;
}
int Geo()
{
   system ("cls");
   cout<<"<===============Su categoria es Deportes===============>"<<endl;
   cout<<"Presione cualquier tecla para darle su pregunta"<<endl;
   getch();
   return 0;
}



eso es lo que llevo hecho pero necesito una base de datos para poder poner las preguntas pongo nuevamente un numero aleatorio para la pregunta y este escogera el campo de ese numero luego se imprimiria la pregunta y las repuestas que estan en la base de datos y se compararia la respuesta correcta que tambien esta en la base de datos en otro campo seria algo asi yo se de Access pero he programado en otro lenguaje en c++ no se como hacer esto
#19
En c++ necesito una base de datos que me guarde una pregunta 4 respuestas y la correcta he pensado en hacerlo con una matriz pero como lo haría o que podria hacer les agradeceria su ayuda
#20
No ya resolvi el problema muchas gracias fue un error de mi profesor a enseñarme algo que no era pero porque prodia reemplazar ese getch que necesito para hacer una pausa en el sistema para poder quitar la libreria conio.h