Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: AgustinG en 19 de Febrero 2017, 23:36
-
Hola, el código que tengo lo que debe hacer es lo siguiente: abrir un archivo de texto que contiene números y guardarlos en un vector, luego mostrar esos datos que guardamos en dicho vector! Lo que quería saber es como hacer para asignar los valores que tengo de la variable "i" al vector que anteriormente había reservado en memoria. Luego de eso tengo que mostrar cada uno de los valores del vector de la siguiente manera:
v[1]= (Numero guardado en el archivo de texto)
v[2]=(Numero guardado en el archivo de texto)
v[3]=(Numero guardado en el archivo de texto)
v[4]=(Numero guardado en el archivo de texto)
...
Acá pongo el código:
int main(int argc, char* argv[])
{ int n;
char enter=10;
int i;
int r;
char a=0;
char b;
char x[15];
//define un puntero al manejador de archivos
FILE *fp;
//solicitar apertura del archivo
fp = fopen("Numeros.txt", "r");
if (fp==NULL){
printf("El archivo no existe\n");
}
else {
//determinar el tamaño del vector
n=0;
i=0;
while(r= fread(&b, 1, 1,fp)){
if(b==enter){
if(n>0){
i++;
n=0;
}
}
else{
n++;
}
}
if(n>0){ i++;}
//creo el vector dinamicamente
int *v;
v = (int *)malloc(4*i);
printf("construi el vector de tamaño %d\n",i);
//es necesario reposicionar el puntero para leer de nuevo desde el principio
r= fseek(fp,0,SEEK_SET);
//leo el archivo caracter por caracter
n=0;
while(r= fread(&b, 1, 1,fp)){
if(b==enter){
if(n>0){
x[n]=0;
n=0;
printf("%s\n",x);
i= atoi(x);
printf("i vale%d\n",i);
}
}
else{
x[n]=b;
n++;
}
}
if(n>0){
x[n]=0;
printf("%s\n",x);
i= atoi(x);
printf("i vale%d\n",i);
}
//es necesario reposicionar el puntero para leer de nuevo desde el principio
r= fseek(fp,0,SEEK_SET);
n=0;
while(r= fread(&b, 1, 1,fp)){
if(b==enter){
if(n>0){
x[n]=0;
n=0;
i= atoi(x);
}
}
else{
x[n]=b;
n++;
}
}
if(n>0){
x[n]=0;
i= atoi(x);
//Asignar los valores al vector que reservamos
}
r= fclose(fp);
return 0;
}
-
Buenas AgustinG en el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210 hay algunos ejemplos que quizás te sirvan en concreto he visto uno en la entrega CU00543F Final de archivo (eof y feof) con C. End Of File. Leer datos de un fichero hasta final. Ejemplo código
Salu2