Txt文件格式每行壹個植物:植物名稱空白科屬?空間?形態特征?空間?使用值輸入。
巴別景天?景天屬的景天?多年生肉質草本植物?園林綠化有藥用價值。
木蘭花?木蘭科木蘭亞屬木蘭屬?落葉樹?景觀美化。
銀杏?銀杏科的銀杏?落葉樹?食用,藥用,景觀美化。
槐花?豆科五葉蝗?景觀美化。
紅楓?槭樹科?小落葉樹?景觀美化。
海棠?屬於薔薇科蘋果屬?小落葉樹?景觀美化。
三色堇?堇菜科堇菜?多年生草本植物?具有藥用價值,中國多用於園林綠化。
羅斯?薔薇科薔薇?半常綠低矮灌木?景觀美化。
白楊?楊柳科的楊?樹木還是灌木?景觀美化。
石榴樹?石榴?落葉灌木還是小樹?園林綠化,水果食用,藥用。# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
typedef?struct?植物
{
夏爾?名稱[20];
夏爾?屬[50];
夏爾?輪藻[1000];
夏爾?值[100];
struct?植物?*下壹個;
}植物;
植物?*readFile(文件?* FP);//返回頭節點指針。
植物?*findByName(PLANT?*plantHead,char?name[]);
int?主()
{
夏爾?名稱[20];
植物?*plantHead=NULL,* plantFind = NULL
文件?* fp = NULL
if((fp=fopen("C:\\list.txt "," rt+")= = NULL)
{
printf("不能?開放?文件?罷工?有嗎?鑰匙?退出!”);
退出(1);
}
plant head = readFile(FP);
Printf("請輸入您要查找的植物名稱:");
scanf("%s ",名稱);
plantFind=findByName(plantHead,name);
Printf("屬於% s:% s \ n形態特征:% s \ n使用值:% s ",plant find-& gt;名稱,植物查找-& gt;屬,plant find->;charas,plant find-& gt;值);
回歸?0;
}
植物?*findByName(PLANT?*plantHead,char?姓名[])
{
while(plant head->;下壹個!=空)
{
如果(!strcmp(plant head-& gt;下壹個-& gt;名字,名字))
回歸?plant head->;接下來;
plant head = plant head-& gt;接下來;
}
回歸?NULL
}
植物?*readFile(文件?*fp)//返回頭節點指針。
{
植物?*plantNew=NULL,*plantHead=NULL,* plantTail = NULL
printf("-\ n ");
fseek(fp,?0,?SEEK _ SET);//文件流指針被重置到開頭
plantHead=(植物?*)malloc(sizeof(PLANT));
plant head->;next = NULL
plantNew=(植物?*)malloc(sizeof(PLANT));
plant new-& gt;next = NULL
while(fscanf(fp," %s?%s?%s?%s ",plant new-& gt;名稱,plant new-& gt;屬,植物新->;charas,plant new-& gt;值)!=-1)
{
if(plant head-& gt;next==NULL)
plant head->;next = plantNew
其他
plant tail->;next = plantNew
plantTail = plantNew
Printf("讀取信息:名稱:%s?家庭:%s?功能:%s?值:%s\n ",plant new-& gt;名稱,plant new-& gt;屬,植物新->;charas,plant new-& gt;值);
plantNew=(植物?*)malloc(sizeof(PLANT));
plant new-& gt;next = NULL
}
免費(plant new);
printf("-數據讀取完成-\ n ");
回歸?plantHead
}