////////////////////////////////////////////
//Archivo: archivo.h
////////////////////////////////////////////
#ifndef archivo_h
#define archivo_h
class archivo
{
public:
archivo();
void abrirArchivoLeer(char *);
void abrirArchivoEscribir(char *);
void cerrarArchivo();
int leerNumeroArchivo();
char leerLetraArchivo();
void escribirNumArchivo(const int &);
void escribirCarArchivo(const char &);
private:
FILE *ptrArchivo;
FILE *ptrAuxiliar;
};
#endif
////////////////////////////////////////
// Archivo: archivo.cpp
///////////////////////////////////////
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include "archivo.h"
using namespace std;
//Constructor, inicializa en NULL los punteros
archivo::archivo()
{
ptrArchivo = NULL;
ptrAuxiliar = NULL;
}
//Abre un archivo solo escritura
void archivo::abrirArchivoEscribir(char *nomArchivo)
{
cout << nomArchivo;
ptrArchivo = fopen(nomArchivo, "w");
if(ptrArchivo == NULL)
{
printf("Error: el archivo no se puede abrir\n");
printf("Presione una tecla para continuar...");
getch();
exit(1);
}
ptrAuxiliar = ptrArchivo;
}
//Las otras funciones que se incluyen en el archivo.h no las copié
// para simplificar.
/////////////////////////////////////////////////////////
//Archivo: usaArchivo.cpp
/////////////////////////////////////////////////////////
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include "archivo.h"
using namespace std;
int main(int argumentos, char *archivos[])
{
archivo *matriz, *comandos, *nuevo;
char *nomMatriz, *nomComandos, *nomNuevos;
//Verifica que solo se coloquen 2 argumentos
if(argumentos > 3)
{
printf("\n\nDemasiados argumentos, coloque solo dos.");
printf("Presione una tecla para terminar...");
cin.get();
exit(1);
}
nomMatriz = &archivos[1][0];
cout << "Nombre matriz: " << nomMatriz << "\n";
nomComandos = &archivos[2][0];
cout << "Nombre comandos: " << nomComandos << "\n";
nomNuevos = "nuevo.txt";
cout << "Nombre nuevo: " << nomNuevos << "\n";
nuevo->abrirArchivoEscribir(nomNuevos); // Esto dá el error!!!
nuevo->cerrarArchivo();
matriz->cerrarArchivo();
comandos->cerrarArchivo();
cin.get();
return 0;
}