2020年05月15日 23:03 __ _ _ _ _

不点蓝字,我们哪来故事?

Don’t look forward to tomorrow, don’t miss yesterday, to grasp
today。不憧憬明天,不留念昨日,只把握今日。
** 题目描述: **

实现从文本中读取出指定学号的学生信息并显示,文本文件存放格式是每一行对应一个学生信息,最后一行没有换行符。

输入

solve(char s[])已经给一个字符串s,代表学生学号。

文件a.txt存放所有学生信息。

输出

输出该学号学生信息 如果不存在则输出Not Found!

样例输入:

11405200102

如a.txt中内容为:

11405200101 zhangsan 70 80 90 240 8011405200102 lisi 80 60 70 210 70

样例输出:

11405200102 lisi 80 60 70 210 70

源代码:


#include<stdio.h>#include<string.h>extern void solve();int main(void){    FILE *f=fopen("a.txt","w");    fprintf(f, "%s\n", "11405200101 zhangsan 70 80 90 2140 80");    fprintf(f, "%s\n", "11405200102 lisi 80 60 70 210 70");    fprintf(f, "%s\n", "11405200103 lisasdsi 80 10 70 220 70");    fprintf(f, "%s\n", "11405200104 liassi 80 60 70 240 70");    fprintf(f, "%s\n", "11405200105 lzissssi 80 30 76 210 70");    fprintf(f, "%s\n", "11405200106 lisgsi 80 50 70 210 70");    fprintf(f, "%s\n", "11405200107 lizssi 80 67 70 280 76");    fprintf(f, "%s\n", "11405200108 lisqsi 80 60 70 210 70");    fprintf(f, "%s", "11405200109 lisdssi 80 67 70 210 70");    fclose(f);    char s[100];    scanf("%s",&s);    solve(s);    return 0;}
void solve(char s[]) {    FILE *fq = fopen("a.txt", "r");    int n;    char line[20], a[100];    for (n = 0; n < 9; n++) {        fgets(line, 12, fq);        fgets(a, 100, fq);        if (strcmp(s, line) == 0) {            printf("%s %s", line, a);            fclose(fq);            break;        }        if (n == 8) {            printf("Not Found!");        }    }}

运行结果:

文章配图

文章配图

最后的话:刷题要找自己的不足,然后去专攻。

往期推荐:

2020年5月编程排行榜:C语言反超Java夺冠 2020-05-05
文章配图

统计文本字母数量 2020-05-11
文章配图

按数据块读写文件存取学生信息 2020-05-14
文章配图

公众号:程序员Bob

一个正在学习C语言的人,致力于将所学内容讲得更透彻!

点赞关注谢谢你

长按下图二维码关注,和你一起领悟程序员的魅力。

文章配图

点“ 在看 ” 你懂得

文章配图

预览时标签不可点

阅读




__