Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: J_F_NASH en 28 de Octubre de 2007, 06:49:20 PM

Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: J_F_NASH en 28 de Octubre de 2007, 06:49:20 PM
Estoy con C.

En "fichero.txt" tengo:
1,10,3,20

Quiero poner cada número en "almacen[9]".
Había probado esto:

void Cargar(){
char almacen[9];
ARCHIVO = fopen("prueba.txt", "r");
for(int x=0; x<9; x++){
almacen[x] = fgetc(ARCHIVO);
cout << atoi(&almacen[x]);
}
fclose(ARCHIVO);
}


El problema es que me pone las comas como ceros.
¿Cual es la mejor forma de hacer esto?



Gracias de antemano.


S2.
Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: Zaelsius en 28 de Octubre de 2007, 08:08:27 PM
Googlea la función fscanf

Uno de tantos ejemplos:
http://www.cppreference.com/stdio/fscanf.html

Edit: Era fscanf(no scanf) como bien apunta Pogacha
Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: Pogacha en 28 de Octubre de 2007, 10:38:01 PM
Creo que lo que buscas es algo así:

  void Cargar(){
     FILE* ARCHIVO; // este te lo comiste
     int var1, var2, var3, var4;
     ARCHIVO = fopen("prueba.txt", "r");
     fscanf("%d,%d,%d,%d", &var1, &var2, &var3, &var4);
     fclose(ARCHIVO);
    cout << var1 << ", " <<  var2 << ", " << var3 << ", " << var4 << endl;
  }


Lo cual me hace plantear: deberas buscar un buen libro de C y estudiar sin mas ...
Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: J_F_NASH en 29 de Octubre de 2007, 07:27:54 PM
Lo siento, no me explico nada bien.
Con la función que comentais obtengo los mismos resultados.

//////////////////////////////////////////////////////////////////
//En el archivo "prueba.txt" solo tengo esta información:
//  1,10,3,20

//En el archivo prueba.cpp tengo////////////////////////////

FILE *ARCHIVO;

void Cargar(){
char almacen[9];
ARCHIVO = fopen("prueba.txt", "r");
for(int x=0; x<9; x++){
fscanf(ARCHIVO, "%c", &almacen[x]);
cout << atoi(&almacen[x]);
}
fclose(ARCHIVO);
}


Lo que busco es la forma de introducir los digitos del archivo txt (que están separados por comas) en el arreglo; pero NO QUIERO QUE ME SUSTITUYA LA COMA POR UN CERO quiero que:
almacen[0] = 1
Pero no:
almacen[0] = 10



S2.
Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: Pogacha en 29 de Octubre de 2007, 08:13:58 PM
Primero, no leiste como se usa tal función.
Segundo, tampoco pareces entender que son los tipos de datos (es distinto un int que un char)
Tercero, "digitos" son representados por un caracter, "numeros" pueden ser representados con una cadena de caracteres ...

Por esas razones te aconsejo que leas un libro de C desde el principio y hasta el final sin saltearte nada y hagas uno a uno sus ejercicios y tutoriales por que estas en una zona de programación que necesita de ciertas bases que no tienes y no llegaras a nada así.

Saludos!

EDIT:
Alguien seguramente te recomendará mas especificamente pero empieza buscando aca.

http://www.dmoz.org/World/Espa%C3%B1ol/Computadoras/Programaci%C3%B3n/Lenguajes/C/

Este parece estar completo:
http://webpages.ull.es/users/fsande/talf/cursoc/
Título: ¡Ayuda! Pasar un archivo txt a un arreglo.
Publicado por: zxs en 29 de Octubre de 2007, 09:49:21 PM
Pues yo le aconsejo este libro, creo que es de los libros mejor explicados que he leido nunca.

Citar
http://www.agapea.com/Programacion-en-C-2-Ed--n8755i.htm

PROGRAMACIÓN EN C 2ª ED.
Byron S. Gottfried (Editorial McGraw-Hill)