Hola, a ver si podeis hecharme una mano con un programita que me viene comiendo el tarro toda la tarde por que no consigo que funcione.
/*Escribe una funcion que reciba dos nombres de fichero, uno para entrada de datos y otro para salida. El
fichero de entrada tiene el formato: numero palabras palabra palabra . . . palabra, suponiendo que hay un
solo espacio entre palabras y que no hay espacios extra al final de la linea. Por ejemplo:
5 hola mundo de la gente
3 con inquietudes manifiestas
2 y alianzas
5 mas alla de la virtud
La funcion debera comprobar si el numero de palabras indicado al inicio de la linea coincide con el numero
real de palabras. Si es asi, en el fichero de salida escribiria \OK" para dicha linea y en caso contrario
\ERROR".*/
#include <stdio.h>
#include <string.h>
int fich(char *rin, char *rout){
int n=0,a=0,b=1;
char s,g,r;
FILE *in,*out;
in=fopen(rin,"r");
if(in==NULL)
return (-1);
out=fopen(rout,"w");
if(out==NULL)
return (-1);
while(fscanf(in,"%s",&g)!= EOF){
while (fscanf(in,"%s",&s) !='\0'){
if (fscanf(in,"%c",&r)==' '){
n++;}}
fscanf(in,"%d",&a);
if (n==a)
fprintf(out,"Linia %d Ok\n",b);
else
fprintf(out,"Linia %d Error\n",b);
b++;
}
fclose(in);
fclose(out);
}
int main(){
int e=0;
char rin[256],rout[265];
gets(rin);
gets(rout);
e=fich(rin,rout);
if(e==-1)
printf("las cagao\n");
return 0;
}
Compila bien, dando solo 1 aviso chorra, decir que lo ejecuto en la misma carpeta en la que tengo unos archivos "in.txt" y "out.txt" que indico con el gets nada mas iniciar la funcion main y el programa no muestra nada y no se termina, supongo que se queda en un bucle infinito en el while, pero como aun no tengo mucha practica trabajando con ficheros y cadenas aun no se por que, a ver si alguien me puede orientar.
Muchas gracias por adelantado =)