36 lines
683 B
C
36 lines
683 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
// 实现读取 filepath 文件的前 top_n 行数据
|
||
|
void *read_top_line(const char *filepath, int top_n)
|
||
|
{
|
||
|
FILE *f = fopen(filepath, "r");
|
||
|
if (NULL == f)
|
||
|
{
|
||
|
perror("fopen");
|
||
|
return NULL;
|
||
|
}
|
||
|
|
||
|
char(*lines)[100] = calloc(top_n, 100);
|
||
|
for (int i = 0; i < top_n; i++)
|
||
|
{
|
||
|
char *flag = fgets(lines[i], 100, f);
|
||
|
if (flag == NULL)
|
||
|
break;
|
||
|
}
|
||
|
fclose(f);
|
||
|
return lines;
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
int n = 5;
|
||
|
char(*p)[100] = read_top_line("d10.txt", n);
|
||
|
for (int i = 0; i < n; i++)
|
||
|
{
|
||
|
printf("第 %d 行: %s", i + 1, *(p + i));
|
||
|
}
|
||
|
free(p);
|
||
|
|
||
|
return 0;
|
||
|
}
|