读取文件中指定学生信息(输入学号打印个人信息)
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语言的人,致力于将所学内容讲得更透彻!
点赞关注谢谢你
长按下图二维码关注,和你一起领悟程序员的魅力。

点“ 在看 ” 你懂得

预览时标签不可点
阅读
__
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小Bob的博客!











