• Lunes 4 de Julio de 2022, 11:43

Autor Tema:  escrivir valores en un archivo  (Leído 1806 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
escrivir valores en un archivo
« en: Martes 18 de Enero de 2011, 01:00 »
0
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?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: escrivir valores en un archivo
« Respuesta #1 en: Martes 18 de Enero de 2011, 08:13 »
0
fopen() fread() fclose()

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #2 en: Martes 18 de Enero de 2011, 18:21 »
0
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"

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #3 en: Martes 18 de Enero de 2011, 18:30 »
0
Y bueno ... fwrite.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #4 en: Martes 18 de Enero de 2011, 18:49 »
0
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;
}

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: escrivir valores en un archivo
« Respuesta #5 en: Miércoles 19 de Enero de 2011, 00:13 »
0
Es que no entendí qué quisiste decir con "escrivir"

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #6 en: Miércoles 19 de Enero de 2011, 00:36 »
0
Cita de: "m0skit0"
Es que no entendí qué quisiste decir con "escrivir"

 :lol:  :devil: Es que era fbrite  :clown:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #7 en: Miércoles 19 de Enero de 2011, 16:26 »
0
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.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: escrivir valores en un archivo
« Respuesta #8 en: Jueves 20 de Enero de 2011, 17:32 »
0
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.  
La imaginación es el límite.
Hardware & Software | Mexchip

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: escrivir valores en un archivo
« Respuesta #9 en: Jueves 20 de Enero de 2011, 19:17 »
0
Lo que pasa es que así no te va a escribir ff, sino [][][]f[][][]f. Tienes que usar char.

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: escrivir valores en un archivo
« Respuesta #10 en: Jueves 20 de Enero de 2011, 23:11 »
0
pase a char y ahora anda bien

gracias  :rolleyes: