SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: josegm13 en Domingo 14 de Octubre de 2007, 22:56

Título: Se Puede Convertir Un File A Cadena??
Publicado por: josegm13 en Domingo 14 de Octubre de 2007, 22:56
#include<iostream.h>
#include<stdio.h>
#include<ctype.h>
#include<string.h>

void main(void)
{
   FILE *F;
   char c;
   
//rutina de apertura
F=fopen("D:/fuente.txt","r");

if (F==NULL)
{
printf("no se puede abrir el archivo \n");
exit(1);
}

while(!feof(F))
{

c=fgetc(F);
cout<<c;

}

}



/*hola.. tengo este codigo, quisiera saber si a F del programa se puede pasar a una cadena de caracteres?como se haria?? gracias
Jose G.
Título: Re: Se Puede Convertir Un File A Cadena??
Publicado por: M4donna! en Martes 16 de Octubre de 2007, 00:08
h ttp://www.phon.ucl.ac.uk/courses/spsci/abc/lesson11.htm (http://ttp://www.phon.ucl.ac.uk/courses/spsci/abc/lesson11.htm)

en esa pagina muestra como podes hacer q un programa pida parametros

de esa forma podrias asignarle tu "cadena" ..

la implementacion queda en vos.

Slds.
Título: Re: Se Puede Convertir Un File A Cadena??
Publicado por: Kyrylys en Miércoles 17 de Octubre de 2007, 19:12
creo que lo que realmente quiere es leer un fichero entero en un buffer

para ello lo mas simple:

char * LeeUnFichero(char * fname)
{
FILE * f=fopen(fname,"rb");

if (f==NULL) //malamente!
  return NULL;

fseek(f,0,SEEK_END); //movemos el pointer al final

long size=ftell(f); //tenemos el tamaño al leer la posicion del pòinter

fseek(f,0,SEEK_SET); //volvemos al principio

char * buffer=(char*)malloc(size*sizeof(char));

if (buffer==NULL) //no memory!!
return NULL;

fread(buffer,sizeof(char),size,f); //leo x bytes del file en buffer

fclose(f); //cerramos

return buffer;
}

esta funcion le pasas un nombre de fichero y lo abre y te devuelve el contenido en un buffer.