修改此程序段,并加中文注释,要求询问查找内容,在输入内容后,在文件中查找相应内容,将查找后的结果在文件中标蓝和文件中其他内容一起显示(不改变文件中的字体颜色,只改变显示内容的颜色)://查找函数 void search_file(FILE *fp, char *fname) { char buf[100]; long int pos, len; printf("\t请输入查找的文件名:\n\t"); // 从标准输入中获取文件名 fgets(fname, MAX_LEN, stdin); // 查找'\n'字符并替换为'\0' char *pos1 = NULL; if ((pos1 = strchr(fname, '\n')) != NULL) *pos1 = '\0'; // 添加后缀名".txt",如果没有输入 if (!strstr(fname, ".txt")) strcat(fname, ".txt"); if ((fp = fopen(fname, "r")) == NULL) { printf("\t不能打开文件!\n"); exit(0); } printf("\t请输入要查找的位置:\n\t"); scanf("%ld", &pos); printf("\t请输入要查找的长度:\n\t"); scanf("%ld", &len); fseek(fp, pos, SEEK_SET); fgets(buf, len + 1, fp); printf("\t查找到的内容为:%s\n\n", buf); getchar(); fclose(fp); }
时间: 2024-03-26 14:36:33 浏览: 65
//查找函数
void search_file(FILE *fp, char *fname) {
char buf[100];
long int pos, len;
//提示用户输入要查找的文件名
printf("\t请输入查找的文件名:\n\t");
//从标准输入中获取文件名
fgets(fname, MAX_LEN, stdin);
//查找 '\n' 字符并替换为 '\0'
char *pos1 = NULL;
if ((pos1 = strchr(fname, '\n')) != NULL)
*pos1 = '\0';
//添加后缀名 ".txt",如果没有输入
if (!strstr(fname, ".txt"))
strcat(fname, ".txt");
//打开文件
if ((fp = fopen(fname, "r")) == NULL) {
printf("\t不能打开文件!\n");
exit(0);
}
//提示用户输入要查找的位置
printf("\t请输入要查找的位置:\n\t");
scanf("%ld", &pos);
//提示用户输入要查找的长度
printf("\t请输入要查找的长度:\n\t");
scanf("%ld", &len);
//将文件指针移到要查找的位置
fseek(fp, pos, SEEK_SET);
//从文件中读取要查找的长度
fgets(buf, len + 1, fp);
//在控制台上输出查找到的内容
printf("\t查找到的内容为:\033[34m%s\033[0m\n\n", buf);
getchar();
//关闭文件指针
fclose(fp);
}
注释:将查找后的结果在文件中标蓝和文件中其他内容一起显示,不改变文件中的字体颜色,只改变显示内容的颜色。
阅读全文