我不知道我的代码是否合适。我读过,虽然(!feof(arch))总是错的

时间:2017-09-13 05:02:59

标签: c

我们的想法是为学生的成绩创建一个数据库,但我不知道这段代码有什么问题

char bas;
char cadena[100];
FILE *arch, *pagC;
int c;
arch=fopen("alumnos.txt","r");
pagC=fopen("calificaciones.html","w");
/*html tags for a table*/
while(!feof(arch))         
{
    fprintf(pagC,"<TR>");
    while(c!='\n')                                  
    {
        fscanf(arch,"%[^:]%c",cadena,&bas);    
        fprintf(pagC,"<TD>%s</TD>",cadena);
    }
    fprintf(pagC,"</TR> \n");
}
fprintf(pagC,"</TABLE> </CENTER> </BODY> </HTML>");
fclose(pagC);
fclose(arch);

1 个答案:

答案 0 :(得分:1)

这意味着:

while(getchar()!='\n')

你正在读char字符char但你对newLine字符不感兴趣 \ n

另外请注意@WhozCraig的重要评论

  

同样重要的是,换行将终止循环,但无论如何   什么被读,它丢失了。循环延续只意味着它   是的,它不是换行符。此外,getchar()可能正在阅读   stdin,而里面的语句只对文件IO感兴趣。   毋庸置疑,这个循环很奇怪。