Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¡Ayuda! Pasar un archivo txt a un arreglo.

Iniciado por J_F_NASH, 28 de Octubre de 2007, 06:49:20 PM

« anterior - próximo »

J_F_NASH

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.

Zaelsius

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

Pogacha

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 ...

J_F_NASH

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.

Pogacha

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/

zxs

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)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.