Ejemplo de que fgets NO_FUNCIONA... Ayudenme ='(
Publicado por CatiritaCoder (3 intervenciones) el 12/06/2007 16:53:07
/*********************************************************************************************/
/* CÓDIGO */
/********************************************************************************************/
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct tpila
{ int cima;
int elementos[40];
}pila;
void crear(struct tpila *pila);
void apilar(struct tpila *pila, int elem);
void desapilar(struct tpila *pila, int *elem);
int c,n,cn,i,x,cantx,canty,log,len;
char *linea;
FILE *archin;
int main()
{ archin=fopen("xy.txt","r");
fscanf(archin,"%d",&n);
cn=0;
while(cn<n)
{ log=1;
crear(&pila);
fgets(linea,100,archin); //ERROR EN TIEMPO DE EJECUCIÓN!!
len=strlen(linea);
if(len>80) log=0;
i=cantx=canty=0;
while((log)&&(i<len))
{ if(canty>cantx) log=0;
if(linea[i]=='X') cantx++;
if(linea[i]=='Y') canty++;
if((i==len-1)&&(cantx!=canty)) log=0;
i++;
}
if(!log) printf("NO\n");
else if(log)
{ printf("YES");
for(i=0;i<len;i++)
{ if(linea[i]=='X') apilar(&pila,i+1);
if(linea[i]=='Y')
{ desapilar(&pila,&x);
printf(" %d %d",x,i+1);
}
}
printf("\n");
}
cn++;
}//while
fclose(archin);
getch();
return 0;
}//main
void crear(struct tpila *pila)
{
pila->cima = -1;
}
void apilar(struct tpila *pila, int elem)
{
pila->elementos[++pila->cima] = elem;
}
void desapilar(struct tpila *pila, int *elem)
{
*elem = pila->elementos[pila->cima--];
}
/*********************************************************************************************/
/* ARCHIVO DE TEXTO */
/********************************************************************************************/
3
AFEDXHDHDHYXYHDRXIORYFDRE
VDFDXYGDHEYEWD
FXMXHYZTYMU
/* CÓDIGO */
/********************************************************************************************/
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct tpila
{ int cima;
int elementos[40];
}pila;
void crear(struct tpila *pila);
void apilar(struct tpila *pila, int elem);
void desapilar(struct tpila *pila, int *elem);
int c,n,cn,i,x,cantx,canty,log,len;
char *linea;
FILE *archin;
int main()
{ archin=fopen("xy.txt","r");
fscanf(archin,"%d",&n);
cn=0;
while(cn<n)
{ log=1;
crear(&pila);
fgets(linea,100,archin); //ERROR EN TIEMPO DE EJECUCIÓN!!
len=strlen(linea);
if(len>80) log=0;
i=cantx=canty=0;
while((log)&&(i<len))
{ if(canty>cantx) log=0;
if(linea[i]=='X') cantx++;
if(linea[i]=='Y') canty++;
if((i==len-1)&&(cantx!=canty)) log=0;
i++;
}
if(!log) printf("NO\n");
else if(log)
{ printf("YES");
for(i=0;i<len;i++)
{ if(linea[i]=='X') apilar(&pila,i+1);
if(linea[i]=='Y')
{ desapilar(&pila,&x);
printf(" %d %d",x,i+1);
}
}
printf("\n");
}
cn++;
}//while
fclose(archin);
getch();
return 0;
}//main
void crear(struct tpila *pila)
{
pila->cima = -1;
}
void apilar(struct tpila *pila, int elem)
{
pila->elementos[++pila->cima] = elem;
}
void desapilar(struct tpila *pila, int *elem)
{
*elem = pila->elementos[pila->cima--];
}
/*********************************************************************************************/
/* ARCHIVO DE TEXTO */
/********************************************************************************************/
3
AFEDXHDHDHYXYHDRXIORYFDRE
VDFDXYGDHEYEWD
FXMXHYZTYMU
Valora esta pregunta


0