#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <windows.h> #define MAX 256 int main(void) { FILE *fa; int i,count=0; char ch[MAX],file[MAX]="1.txt"; if ((fa=fopen(file,"r"))==NULL) { puts("不能打开文件"); } puts("请输入你要查找的行"); if (scanf("%d",&i)!=1) puts("请输入一个选项"); rewind(fa); do{ if((fgets(ch,MAX,fa))!=NULL) count++; else { printf("您输入的选项超出的范围\n"); Sleep(1000); exit(1); } }while(count!=i); printf("文件第%d内容是:%s",i,ch); fclose(fa); return 0; }
注:MAX设置时应该比文件中最大一行大1.
fgets(buf,MAX,fp)其中BUF是一个数组的名称,MAX是字符串最大长度,fp是一个FILE指针。
fgets()函数读取到它所遇到的第一个换行字符的后面,或
读取比字符串的最大长度(MAX)少一个的字符处 或
读取到文件结尾。
然后fgets()函数向末尾添加一个空字符以构成字符串。
fgets()遇到EOF的时候会返回NULL值,可以检查文件结尾。否则它返回传递给他的地址值
原文地址:http://cyuyanstudy.blog.51cto.com/2374172/1640413