Bueno no se si al final es escribir o leer en el archivo Te he construido un code de unos minutos,funciona bien,pero se puede hacer de otras maneras:
el do-while lo he puesto para poder usar la funcion break y salir del bucle,pero con el do-while se puede hacer todo eso,te lo deje en los comentarios del programa.
fichero leer.txt --> vamos todos
resultado en la consola: vs ts
otro ejemplo,aunque da un error,yo lo he visto por encima y no lo he visto,tendras que pillarlo:
Un saludo
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
void mostrar(){
FILE *fichero;
char *palabra;
do{
char *p[10];
palabra = (char *) malloc (20 * sizeof(char));
int j;
fichero = fopen("leer.txt","r");
fscanf(fichero,"%s",palabra);
setbuf(stdin,NULL);
j = sizeof(palabra);
p[0] = palabra;
printf ("%c",*p[0]);
p[1] = &palabra[j];
printf("%c",*p[1]);
fseek(fichero,1,SEEK_CUR);
if (feof(fichero)){
break;
}
fscanf(fichero,"%s",palabra);
setbuf(stdin,NULL);
j = sizeof(palabra);
p[2]= palabra;
printf(" ");
printf ("%c",*p[2]);
p[3] = &palabra[j];
printf("%c",*p[3]);
fseek(fichero,1,SEEK_CUR);
if (feof(fichero)){
break;
}
//esa es la idea principal,continua desde aqui
//tambien podrias definir una variable llamada x con un valor 0,hacer un do-while e ir aumentando el numero del punteroasi p[++x]
//pasaria de p[0] a p[1].
}while(1);
fclose(fichero);
}
int main(){
mostrar();
getchar();
return 0;
}
el do-while lo he puesto para poder usar la funcion break y salir del bucle,pero con el do-while se puede hacer todo eso,te lo deje en los comentarios del programa.
fichero leer.txt --> vamos todos
resultado en la consola: vs ts
otro ejemplo,aunque da un error,yo lo he visto por encima y no lo he visto,tendras que pillarlo:
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
void mostrar(){
FILE *fichero;
char *palabra;
char *p[10];
int x =0;
palabra = (char *) malloc (20 * sizeof(char));
int j;
fichero = fopen("leer.txt","r");
while (!feof(fichero)){
fscanf(fichero,"%s",palabra);
j = sizeof(palabra);
x++;
p[x] = palabra;
printf ("%c",*p[x]);
x++;
p[x] = &palabra[j];
printf("%c",*p[x]);
printf(" ");
fseek(fichero,1,SEEK_CUR);
fflush(fichero);
if (feof(fichero)){
break;
}
}
free(palabra);
fclose(fichero);
}
int main(){
mostrar();
getchar();
return 0;
}
Un saludo