fgets函数和fgetc函数的区别在于前者是从指定的流中读取一个字符串,而后者是从流中读取一个字符,论速度和便捷度的话:如果需要从流中读取一组字符串,,前者直接系统进行一次操作,而后者系统则是需要一个一个字符的读取,也就是说对于后者系统所需要操作的次数比较的多。
下面是练习使用fgets函数过程中遇见的一些问题:
int main(void){
FILE * file;
char line[256];
char * ret;
file = fopen("news.c","r");
if(!file){
printf("打开文件失败\n");
return 1;
}
while(1){
ret = fgets(line,sizeof(line),file);
if(!ret){
break;
}
printf("%s",line);
return 0;
}`*
如上运行的话会出现下列这样的结果,
错误就在于,return 0;这个放错了位置,它应该在while函数的外面。
int main(void){
FILE * file;
char line[256];
char * ret;
file = fopen("news.c","r");
if(!file){
printf("打开文件失败\n");
}
while(1){
ret = fgets(line,sizeof(line),file);
if(ret == EOF){
break;
}
printf("%s",line);
}
return 0;
运行以上的话会出现这个结果—>
错误在于将指针和整数进行比较,这两者不能进行比较。
正确的应该是: