c语言在txt查找文本,返回相同的行的数据
数据内容如下:在txt文件内2001Gas3868202192562002Epower3258803756612003Epower9126153033152004Epow...
数据内容如下:在txt文件内
2001 Gas 38682021 9256
2002 Epower 32588037 5661
2003 Epower 91261530 3315
2004 Epower 50706106 9374
2005 Gas 70156146 3285
2006 Epower 40124975 1869
2007 Water 41107763 5263
2008 Gas 50834839 4841
2009 Epower 16818779 6822
例如,输入ROOM ID = 2001,就输出ID=2001,STYLE=gas,ID=38682021,BOTH=9256; 展开
2001 Gas 38682021 9256
2002 Epower 32588037 5661
2003 Epower 91261530 3315
2004 Epower 50706106 9374
2005 Gas 70156146 3285
2006 Epower 40124975 1869
2007 Water 41107763 5263
2008 Gas 50834839 4841
2009 Epower 16818779 6822
例如,输入ROOM ID = 2001,就输出ID=2001,STYLE=gas,ID=38682021,BOTH=9256; 展开
4个回答
展开全部
#include<stdio.h>
struct RECs { unsigned int uRoomID,uID,uBoth; char sStyle[20]; };
void main() { struct RECs a; FILE *fp; char buffer[256]; unsigned int r; int b;
if ( fp=fopen("c:\\room.txt","r") ) {
while ( 1 ) {
printf("请输入ROOM ID: "); scanf("%u",&r); if ( r==0 ) break;
fseek(fp,0L,SEEK_SET); b=0;
while ( !feof(fp) ) {
fgets(buffer,255,fp); sscanf("%u%s%u%u",&a.uRoomID,a.sStyle,&a.uID,&a.uBoth);
if ( uRoomID==r ) {
printf("ID=%u,STYLE=%s,ID=%u,BOTH=%u\n",a.uRoomID,a.sStyle,a.uID,a.uBoth);
b=1;
break;
}
}
if ( b==0 ) printf("没有该房间记录。\n"); else printf("\n");
}
fclose(fp);
} else printf("无法打开文件读取数据。\n");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
随便写写,有很多可以优化的地方,错误处理什么的,..
#include <stdio.h>
#include <string.h>
#include <conio.h>
struct DATA {
int id1;
char style[10];
int id2;
int both;
};
DATA find_data(const char *path,int id1) {
DATA data;
FILE *file = fopen(path, "r");
while (fscanf(file, "%d %s %d %d", &data.id1, data.style, &data.id2, &data.both) > 0) {
if (data.id1 == id1) {
break;
}
}
fclose(file);
return data;
}
void print_data(const DATA *data) {
printf("ID=%d STYLE=%s ID=%d BOTH=%d\n", data->id1, data->style, data->id2, data->both);
}
int main() {
const char *path = "data.txt";
int id;
DATA data;
while (1) {
printf("输入id\n");
scanf("%d", &id);
data = find_data(path, id);
print_data(&data);
}
return 0;
}
注意如果用C编译器编译估计会有点问题,你改改就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-01-04
展开全部
静、纯洁、妩媚、优雅的荷花,来一场只有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询