SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Alfonsos1 en Martes 18 de Enero de 2011, 01:00

Título: escrivir valores en un archivo
Publicado por: Alfonsos1 en Martes 18 de Enero de 2011, 01:00
Quiero hacer un programa donde se escriva en un archivo los balores de un array

el array seria este:

int miarray[4];
miarray[0]=412;
miarray[1]=21;
miarray[2]=5324;
miarray[3]=44522;

el archivo estaria en la misma carpeta del programa

¿como seria el codigo?
Título: Re: escrivir valores en un archivo
Publicado por: m0skit0 en Martes 18 de Enero de 2011, 08:13
fopen() fread() fclose()
Título: Re: escrivir valores en un archivo
Publicado por: Alfonsos1 en Martes 18 de Enero de 2011, 18:21
fread no sirve para escrivir, solo sirve para leer,

por ejemplo lo que quiero es ingresar el NUMERO 100 (no los caracteres "1" "0" "0") en el archivo asd.txt.

Código: C++
  1. #include <stdio.h>
  2. #include <cstdlib>
  3.  
  4. int main()
  5. {
  6.     int var=100;
  7.     FILE *fs=fopen("asd.txt", "wb");
  8.     //Aqui ingresar el valor de "var"
  9.     fclose(fs);
  10.     system("pause");
  11.     return 0;
  12. }
  13.  

Osea que luego de haber ejecutado el programa, al abrir el archivo asd.txt, me tiene que aparecer el caracter que corresponde al valor 100 (segun la codificacion ANSI creo) osea el carater "d"

LO que no quiero es que al abrir el txt me aparescan los caracteres "100"
Título: Re: escrivir valores en un archivo
Publicado por: Eternal Idol en Martes 18 de Enero de 2011, 18:30
Y bueno ... fwrite.
Título: Re: escrivir valores en un archivo
Publicado por: Alfonsos1 en Martes 18 de Enero de 2011, 18:49
OMFG! alfin lo logre, gracias

int main()
{
    int var[1024];
    var[0]=100;
    FILE *fs=fopen("asd.txt", "wb");
    fwrite(var, 1, 1, fs);
    system("pause");
    return 0;
}
Título: Re: escrivir valores en un archivo
Publicado por: m0skit0 en Miércoles 19 de Enero de 2011, 00:13
Es que no entendí qué quisiste decir con "escrivir"
Título: Re: escrivir valores en un archivo
Publicado por: Eternal Idol en Miércoles 19 de Enero de 2011, 00:36
Cita de: "m0skit0"
Es que no entendí qué quisiste decir con "escrivir"

 :lol:  :devil: Es que era fbrite  :clown:
Título: Re: escrivir valores en un archivo
Publicado por: Alfonsos1 en Miércoles 19 de Enero de 2011, 16:26
ahora probe con mas de 1 caracter y no me funciona:

int var[1024];
var[0]=102;//El codigo ANSI de "f" es 102
var[1]=102;
FILE *fs=fopen("asd.txt", "wb");
fwrite(var, 1, 2, fs);

Lo que yo quiero que haga este codigo es que escriba en asd.txt "ff", pero cuando lo ejecuto lo que hace es escribir "f ",
el primer caracter esta bien, pero el segundo en lugar de escrivir una "f" escrive un espacio.
Título: Re: escrivir valores en un archivo
Publicado por: Geo en Jueves 20 de Enero de 2011, 17:32
Revisa la sintaxis de la función fwrite:

Código: C
  1. fwrite( puntero_array, tamaño_en_bytes_de_cada_elemento, numero_de_elementos, puntero_FILE );
  2.  
Una variable tipo int no ocupa un solo byte en memoria, su tamaño depende de la plataforma en que trabajes, si es un sistema de 32 bits probablemente ocupe 4 bytes. En fin, que para escribir ff en tu archivo debes cambiar:
Código: C
  1. fwrite(var, 1, 2, fs);
  2.  
por
Código: C
  1. fwrite( var, 4, 2, fs );
  2.  
O mejor aún, si no sabes cuántos bytes ocupa un tipo int usa sizeof:
Código: C
  1. fwrite( var, sizeof( int ), 2, fs );
  2.  
Título: Re: escrivir valores en un archivo
Publicado por: m0skit0 en Jueves 20 de Enero de 2011, 19:17
Lo que pasa es que así no te va a escribir ff, sino [][][]f[][][]f. Tienes que usar char.
Título: Re: escrivir valores en un archivo
Publicado por: Alfonsos1 en Jueves 20 de Enero de 2011, 23:11
pase a char y ahora anda bien

gracias  :rolleyes: