viernes, 16 de septiembre de 2011

Operaciones basicas

Ejemplos de sentencias básicas para archivos


#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "stdio.h"

using namespace std;

void main()
{
FILE *fichero;

char cadena[] = "Esto es una prueba\n";
char mensaje[] = "Hola mundo";

//fopen Abre un archivo
fichero = fopen("D:/Pruebas básicas.txt","w+");//Para escribir y actualizar

if(fichero)
cout<<"Creado (ABIERTO)"<<endl;
else
cout<<"No creado"<<endl;

//fwrite escribe un string en el archivo (cadena,longitud cadena,contador,nombre archivo)
fwrite(cadena,strlen(cadena),1,fichero);

//fpuct escribe un caracter en el archivo
int i=0;

while(mensaje[i])
{
fputc(mensaje[i],fichero);
i++;
}

//fprintf envia datos de un determinado tipo
int tipo;//Tipo de dato

fprintf(fichero,"\nEsto es una prueba para usar la funcion printf \n",&tipo);//en este caso de tipo entero (int)

//fseek activa el indicador de posicion al principio del archivo (SEEK_SET), al final (SEEK_END) o donde este actualmente (SEEK_CUR)
fseek(fichero,0,SEEK_SET);//En este caso al principio del archivo


//ftell obtiene el valor actual del indicador de posicion del archivo

cout<<endl<<"Posicion inicial del archivo "<<ftell(fichero)<<endl<<endl;

//fgetc lee un caracter
char caracter;

do
{
caracter = fgetc(fichero);
cout<<caracter;
}while(caracter != EOF);//EOF caracter especial que indica el final del archivo

//fscanf recibe datos de un determinado tipo
char tipo2;

if(fscanf(fichero,"\n",&tipo2))
cout<<tipo2;
else
cout<<"Error";

//feof comprueba si estamos en el final del archivo
if(feof(fichero))
cout<<endl<<endl<<"Estamos en el final del archivo ("<<ftell(fichero)<<"), presiones una tecla para cerrarlo...";
//En la sentencia anterior ftell estaria mostrando el tamaño del archivo (en bytes)

_getch();

cout<<endl<<endl;

//fclose cierra el archivo. Si retorna 0 -> el archivo fue cerrado correctamente
if(!fclose(fichero))
cout<<"Archivo cerrado, vealo en D:/Pruebas basicas.txt"<<endl;
else
{
cout<<"Error: Fichero no cerrado"<<endl;
}

_getch();
}

No hay comentarios:

Publicar un comentario