MANEJO DE ARCHIVOS EN C

0 votos
preguntado por jeremias10 (860 puntos) Ene 28, 2016 en C/C++
HOLA: alguien me podria dar algunos ejemplos como manejar archivos en c++, y temas para leer, y aprender a programar c++.

espero respuestas gracias


25 Respuestas

0 votos
respondido por jeremias10 (860 puntos) Ene 28, 2016
gracias por tu sugerencia voy a ver si consigo una, y donde pondria o donde debo de poner el ejemplo q me diste de como imprimir, en el programa anterior,

y dime donde tengo el error de fichero donde me da errores a la ora q consulto en mi disco duro, y xq me salen muchos signos, a la ora de revisar mis datos o mi base de datos en mi disco, le coloque los siguientes: ".txt" =block denotas, ".docx"=documento de word y ".dat"=me da en un archivo de audio elcual no abre,

explicame si tengo algun error a la ora de uzar las librerias o el codigo

espero gracias


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Sinceramente jamas me habia dado la curiosidad de utilizar puertos USB para el manejo de impresora con C++, la unica experiencia que tengo es usando los puertos paralelos, con impresoras "pasaditas de moda" que usan los puertos LPTx (x = 1,2,..).

Quiza deberias investigar si se puede utilizar puertos USB desde C++.

Mientras te dejo un codigo sencillo de como imprimir con una impresora(antigua con puerto paralelo) conectada al puerto LPT1 que equivale a 0.

El metodo que usare es el biosprint(int orden, int byte, int puerto)

orden: 0,1,2 (0 imprimer caracter, 1 inicia puerto impresora, 2 estado del puerto).

Codigo ejemplo:

==================================

#include <bios.h>

int main(){

    char cad[] = &quot;Hola Impresora :)&quot;;

    while(*cad)

        biosprint(0,*cad++,0); //aqui se imprime

    return 0;

}

======================

asi que si no tienes una impresora con puerto paralelo, te sugiero comiences la investigacion sobre USB.

Saludos


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Aclaracion sobre bios.h  >> es una herramienta que viene el Borland C++, es el use para probar en windows, asi que no funcionara si usas otros C (debilidades por estar en Windows).

Sobre .dat , es importante que dat es un archivo binario que normalmente es usado por el stream de c/c++ y tb por otros, no te preocupes si es que no puedes abrir desde tu windows, la aplicabilidad debe ser vista dentro de tu aplicacion de C++.

Usa mi ejemplo de escribir y en vez de &quot;unArchivo&quot; pon otro nombre como ser: &quot;algo.dat&quot; y despues usa el ejemplo de leer y lees el &quot;algo.dat&quot;, veras que tu aplicacion no tiene ningun tipo de problemas al leer el .dat.

Acerca de txt: Puede ser aceptado pero no es conveniente.

Acerca de .docx:  No lo uses por nada del mundo ya que es una archivo compreso tipo .zip .rar y espera un flujo de bits mas estrecho asi que no te servira para nada.


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Suponiendo que tienes borland C++ bajo windows, hare una modificacion al programa de leer ficheros para que en ves de leer, lo imprima. En este caso imprimira el archivo &quot;algo.dat&quot;.

================================================

//Codigo Modificado, leerEimprimir.cpp

#include <stdio.h>

#include <bios.h>

FILE *archi, *fopen();

int main(){

    char cadena[80];

    archi=fopen(&quot;algo.dat&quot;,&quot;r&quot;);

    if(archi == NULL)

        printf(&quot;Archivo no encontrado&quot;);

    fgets(cadena,60,archi);

    do{

        while(*cadena)

            biosprint(0,*cadena++,0);

    }while(fgets(cadena,80,archi)!=NULL);

    fclose(archi);

    return 0;

}


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Hola, ahora te doy un para de pasos a seguir para usar ficheros en C++, (yo uso el g++, que es el compilador para c++ en linux, espero en win no se un problema).

Pasos para usar archivos:

- Declarar Puntero Fichero. FILE *punteroFichero;

- Apertura de archivo. punteroFichero=fopen(NombreArchivo,tipoAcceso);

- escribir o leer contenido de archivo. fputs(Cadena,punteroFichero); fgets(cadena.nCaracteres,punteroFichero)

- cerrar archivo. fclose(punteroFichero).

Y bueno a continuacion te muestro un ejemplito :)


0 votos
respondido por jeremias10 (860 puntos) Ene 28, 2016
TE DOY UN EJEMPLO Y MIRAS CUAL ES MI PROBLEMA, SALE, Y MA AVISAS A MI CORREO COMO CUATES Y COLEGAS EN PROGRAMACION

YO USO BORLANC C++ 3.1 Y USO EL WINDOWS 7, TALVES LA LIBRERIA O EL COMDANO DE FICHERO NO ES EL CORRECTO,ESPERO UNA RESPUESTA YA Q EL CODIGO Q TE MANDO ES UN PROYECTO,

TAMBIEN ME GUSTARIA SABER COMO IMPRIMIR EN UNA IMPRESORA CANON IP1800 EN C++

TE AGRADEZCO TU AYUDA Y M GUSTARIA Q ME ECHARAS LA MANO CON ESTO:

MI CORREO ES chiriatomo@hotmail.com

que DIOS los Bendiga

ESTE ES MI CODIGO:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

// Estructura para paciente

struct pacienteClinica {

    int codigoPaciente;

    char nombre[50];

    char direccion[255];

    char sexo;

    int edad;

    char telefono[8];

    char ocupacion[25];

    char estadoCivil;

    char razonVisita[255];

};

// Estructura para doctor

struct doctorClinica {

    int codigoDoctor;

    char nombre[50];

    char direccion[255];

    char sexo;

    int edad;

    char especialidad[25];

};

// Estructura estado del paciente

struct estadoPaciente {

       int codigoConsulta;

       int codigoPaciente;

       int codigoDoctor;

       char horaIngreso[6];

       char horaEgreso[6];

       char status; // E-> dado de alta, I-> dado de ingreso

       float precioConsulta;

       char tipoConsulta[25];

};

// prototipos de funciones

void menuPrincipal();

void menuPacientes();

void menuDoctores();

void menuDiagnosticos();

void nuevoPaciente();

void verPacientes();

void editarPaciente();

void eliminarPaciente();

void nuevoDoctor();

void verDoctores();

void editarDoctor();

void eliminarDoctor();

void nuevoDiagnostico();

void editarDiagnostico();

void eliminarDiagnostico();

void verDiagnostico();

void imprimirDatos();

//Funion principal

int main() {

 int opcion;

 int salir = 0;

 while (salir != 1)

  { // while mientras salir sea 0

   menuPrincipal();

   scanf(&quot;%d&quot;, &amp;opcion);

   switch(opcion) { //segun la opcion seleccionada entra al case 0-4

    case 0:

      salir = 1; // opcion salir del menu

    break;

    case 1:

    clrscr();

      menuPacientes(); //opcion pacientes

    break;

    case 2:

     clrscr();

      menuDoctores(); //opcion doctores

    break;

    case 3:

     clrscr();

      menuDiagnosticos(); //opcion diagnosticos

    break;

    case 4:

     clrscr();

      imprimirDatos();//opcion imprimir datos

    break;

   } // fin del switch de opcion de menu principal

 }// fin del while para salir

  printf(&quot;nn&quot;);

  return 0;

}

//Menu principal

void menuPrincipal() {

     printf(&quot;n        Policlinica Asistencial.nn&quot;);

     printf(&quot;n        *****    LA ESPERANZA    *****nn&quot;);

     printf(&quot;            Selecciona la opciona realizar:nn&quot;);

     printf(&quot;            1- Seccion Pacientes.n&quot;);

     printf(&quot;            2- Seccion Doctores.n&quot;);

     printf(&quot;            3- Seccion Diagnostico del Paciente.n&quot;);

     printf(&quot;            4- Imprimir.n&quot;);

     printf(&quot;            0- Salir.nn&quot;);

     printf(&quot;            Opcion: &quot;);

}

//Menu pacientes

void menuPacientes(){

     int exit = 0;

     int opc;

     while (exit != 1) {

       printf(&quot;nMenu Pacientes.nn&quot;);

       printf(&quot;Selecciona la opciona realizar:n&quot;);

       printf(&quot;1- Nuevo Paciente.n&quot;);

       printf(&quot;2- Editar Paciente.n&quot;);

       printf(&quot;3- Eliminar Paciente.n&quot;);

       printf(&quot;4- Ver Pacientes.n&quot;);

       printf(&quot;0- Salir.nn&quot;);

       printf(&quot;Opcion: &quot;);

       scanf(&quot;%d&quot;, &amp;opc);

       switch(opc) {

     case 0:

     clrscr();

           exit = 1;

         break;

     case 1:

     clrscr();

           nuevoPaciente();

         break;

     case 2:

     clrscr();

           editarPaciente();

         break;

     case 3:

     clrscr();

           eliminarPaciente();

         break;

     case 4:

     clrscr();

           verPacientes();

         break;

       }

     }

}

//Menu doctores

void menuDoctores(){

     int exit = 0;

     int opc;

     while (exit != 1) {

       printf(&quot;nMenu Doctores.nn&quot;);

       printf(&quot;Selecciona la opciona realizar:n&quot;);

       printf(&quot;1- Nuevo Doctor.n&quot;);

       printf(&quot;2- Editar Doctor.n&quot;);

       printf(&quot;3- Eliminar Doctor.n&quot;);

       printf(&quot;4- Ver Doctores.n&quot;);

       printf(&quot;0- Salir.nn&quot;);

       printf(&quot;Opcion: &quot;);

       scanf(&quot;%d&quot;, &amp;opc);

       switch(opc) {

     case 0:

     clrscr();

           exit = 1;

         break;

     case 1:

     clrscr();

           nuevoDoctor();

         break;

     case 2:

     clrscr();

           editarDoctor();

         break;

     case 3:

     clrscr();

           eliminarDoctor();

         break;

     case 4:

     clrscr();

           verDoctores();

         break;

       }

     }

}

//Menu diagnostico

void menuDiagnosticos(){

     int exit = 0;

     int opc;

     while
0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Solucion extrema:

Me olvide mencionarte que puedes adaptar tu USB a puerto paralelo LPT a nivel de hardware, quiza sea la solucion mas operativa.

Mira esta pagina, aqui puedes ver el Puente USB-LPT

http://www.epapersign.com/LPT-to-USB/parallel-to-usb-connector/

Toma en cuenta que el equipo donde piensas instalar tu software debe como requisito tener un puerto LPT como minimo.


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Este ejemplo escribe en el archivo un nuevo texto

escribir.cpp

============================================

#include <stdio.h>

FILE *archi, *fopen();

int main(){

    char cadena[] = &quot;nNuevo texto dentro de archivon&quot;;

    archi = fopen(&quot;unArchivo&quot;,&quot;a&quot;);

    if(archi==NULL){

        printf(&quot;No existe archivo o no se creo&quot;);

    } else{

        fputs(cadena,archi);//insertar texto

        fclose(archi);

    }

    return 0;

}

============================================


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Otro problema podria ser el siguiente:

Tu sistema operativo es de 64 bits pero tu compilador es para 32 bits.


0 votos
respondido por fiurer87 (3,260 puntos) Ene 28, 2016
Recomendacion de bibliografia:

Como programar en C/C++, deitel&amp;deitel.

bueno, espero te sirva.

Hasta la proxima

Atte: Luis Roberto


Preguntas relacionadas

0 votos
6 respuestas
0 votos
1 respuesta
0 votos
0 respuestas
0 votos
0 respuestas
preguntado por jeremias10 (860 puntos) Ene 28, 2016 en C/C++
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código
...