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ú

Temas - mauropereyra

#1
Buenas, mi problema es el siguiente:
Supongamos que tengo un txt de alumnos con los datos de los alumnos separados por un ";" por ejemplo:

1;carlos;ramirez
2;juan;perez
3;ezequiel;trota

Mi duda es como hago yo para ir leyendo el archivo txt y poder imprimir o guardar esas variables que estan separadas por un ";" en c++.
Gracias.
#2
Buenas gente, estoy haciendo un programa muy simple para hacer altas bajas y modificaciones en un archivo en c usando registros. Mi problema es que no me funciona la parte en que tendria que dar de baja y la de modificar, les dejo mi programa y espero me puedan ayudar. Desde ya muchas gracias!


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void darbaja();
typedef struct{
   int dni;
   char nombre[30];
   char apellido[30];

}Empleados;
int main()
{


   int opcion=0;

   while(opcion<5){ printf("1_dar de alta\n");
   printf("2_dar de baja\n");
   printf("3_modificar\n");
   printf("4_Imprimir\n");
   scanf("%d",&opcion);
   switch (opcion)
   {

      case 1:daralta();break;
      case 2:darbaja();break;
      case 3:modificar();break;
      case 4:imprimir();break;

   }
   }
   return 0;
}
void daralta()
{
  char nombre[30];
   FILE* miarchivo=NULL;
   Empleados e;
   miarchivo=fopen("Empleados.txt","a+");
   if(miarchivo==NULL)return;
   printf("Ingrese DNi del empleado\n");
   scanf("%d",&e.dni);
   printf("Ingrese nombre del empleado\n");
   scanf("%s",&e.nombre);
   printf("Ingrese apellido del empleado\n");
   scanf("%s",&e.apellido);
   fflush(stdin);
   fseek(miarchivo,0L,SEEK_END);
   fwrite(&e,sizeof(Empleados),1,miarchivo);
   fclose(miarchivo);

}

void imprimir()
{

   FILE* miarchivo=NULL;
   Empleados e;
   miarchivo=fopen("Empleados.txt","r");
   fread(&e,sizeof(Empleados),1,miarchivo);
   if(miarchivo==NULL)return ;

   while(feof(miarchivo)==0)
   {
       printf("DNI:%d Nombre:%s Apellido:%s\n",e.dni,e.nombre,e.apellido);
       fread(&e,sizeof(Empleados),1,miarchivo);
   }
   fclose(miarchivo);


}
void darbaja()
{
   FILE* miarchivo=NULL;
   FILE* miarchivouxiliar=NULL;
   int dniaux;
   Empleados e;
   miarchivo=fopen("Empleados.txt","a+");
   miarchivo=fopen("Empleadosaux.txt","a+");
   printf("Ingrese el dni del empleado\n");
   scanf("%i",&dniaux);

   fread(&e,sizeof(Empleados),1,miarchivo);
   printf("dniaux:%i|dni:%i\n",dniaux,e.dni);
   while(!feof(miarchivo))
   {
       if(e.dni!=dniaux)
       {
           fseek(miarchivouxiliar,0l,SEEK_END);
           fwrite(&e,sizeof(Empleados),1,miarchivouxiliar);
       }

       fread(&e,sizeof(Empleados),1,miarchivo);
       printf("dniaux:%d|dni:%d\n",dniaux,e.dni);
   }
   
   fclose(miarchivo);
   fclose(miarchivouxiliar);
   remove("Empleados.txt");
   rename("Empleadosaux.txt","Empleados.txt");
}
void modificar()
{
   int dniaux;

   FILE* miarchivo=NULL;
   FILE* miarchivouxiliar=NULL;
   Empleados e;
   miarchivo=fopen("Empleados.txt","a+");
   miarchivo=fopen("Empleadosaux.txt","a+");
   printf("Ingrese el dni del guachin\n");
   scanf("%i",&dniaux);
   fread(&e,sizeof(Empleados),1,miarchivo);
   printf("dniaux:%d|dni:%d\n",dniaux,e.dni);
   while(feof(miarchivo)==0)
   {
       if(e.dni!=dniaux)
       {
fseek(miarchivouxiliar,0l,SEEK_END);
           fwrite(&e,sizeof(Empleados),1,miarchivouxiliar);
       }
       else
       {
   printf("Ingrese DNi del empleado\n");
   scanf("%d",&e.dni);
   printf("Ingrese nombre del empleado\n");
   scanf("%s",&e.nombre);
   printf("Ingrese apellido del empleado\n");
   scanf("%s",&e.apellido);
   fflush(stdin);
   fseek(miarchivouxiliar,0l,SEEK_END);
   fwrite(&e,sizeof(Empleados),1,miarchivo);
       }

       fread(&e,sizeof(Empleados),1,miarchivo);
   }
   fclose(miarchivo);
   fclose(miarchivouxiliar);
   remove("Empleados.txt");
   rename("Empleadosaux.txt","Empleados.txt");
}





MOD: Etiquetas de Código GeSHi insertadas
#3
Hola buenas a todos, tengo una duda con un ejercicio de hacer un tateti tridimensional en c. La consigna me pide que tengo que  hacer un array tridimensional y poder hacer tateti en todos los planos del cubo, hasta ahi no hay problema, el tema es que me pide hacer tateti en las diagonales del cubo y no se como hacerlo. Espero puedan ayudarme, gracias!.