How can i displays the output coz it keeps on looping. Can anyone help please? : please solve this. i cant display the output it keeps on looping, im a beginner on this guys hehe it suppose to check whether the input is alpha or digits and store it as identifier and if operator it will store as symbol and check the input for keywords.

    #include <stdio.h> 
    #include <string.h>
    #include <ctype.h>

    void keyword(char str[10])
    {
      if(strcmp("for",str)==0||strcmp("while",str)==0||strcmp("do",str)==0||strcmp("int",str)==0||strcmp("float",str)==0||strcmp("char",str)==0||strcmp("double",str)==0||strcmp("static",str)==0||strcmp("switch",str)==0||strcmp("case",str)==0)
    printf("\n%s is a keyword",str);
    else
    printf("\n%s is an identifier",str);
    }
    main()
    {
    FILE *f1,*f2,*f3;
    char c,str[10],st1[10];
    int num[100], lineo=0,tokenvalue=0,i=0,j=0,k=0;
    printf("\nEnter the c program ");
    gets(st1);
    f1=fopen("input","w");
    while((c=getchar())!=EOF)
    putc(c,f1);
    fclose(f1);
    f1=fopen("input","r");
    f2=fopen("identifier","w");
    f3=fopen("specialchar","w");
    while((c=getc(f1))!=EOF)
    {
    if(isdigit(c))
    {
    tokenvalue=c-'0';
    c=getc(f1);
    while(isdigit(c))
    {
    tokenvalue*=10+c-'0';
    c=getc(f1);
    }
    num[i++]=tokenvalue;
    ungetc(c,f1);
    }
    else if(isalpha(c))
    {
    putc(c,f2);
    c=getc(f1);
    while(isdigit(c)||isalpha(c)||c=='_'||c=='$')
    {
    putc(c,f2);
    c=getc(f1);
    }
    putc(c,f2);
    ungetc(c,f1);
    }
    else if(c=='	'||c=='\t')
    printf("");
    else if(c=='\n')
    lineo++;
    else
    putc(c,f3);
    }
    fclose(f2);
    fclose(f3);
    fclose(f1);
    printf("\nThe no. im the program are");
    for(j=0;j<i;j++)
    printf("%d",num[j]);
    printf("\n");
    f2=fopen("identifier","r");
    k=0;
    printf("The keywords and identifiers are: ");
    while((c=getc(f2))!=EOF)
    {
    if(c!='\0')
    str[k++]=c;
    else
    {
    str[k]='\0';
    keyword(str);
    k=0;
    }
    }
    fclose(f2);
    f3=fopen("specialchar","r");
    printf("\nSpecial Characters are: ");
    while((c=getc(f3))!=EOF)
    printf("%c",c);
    printf("\n");
    fclose(f3);
    printf("Total no. of lines are:%d",lineo);
    }
