我有这一点功课:搜索文本文件的ID(Turbo C的)
给定一个文本文件,创建一个搜索用户提供特定的ID ,里面的文件功能。如果它存在,打印整个 简介如下:
ID_genre_name_age_height
在文本文件中,只有一个轮廓:
19800372_male_David_19_1.75
所以,我的功能如果我输入相同的ID,应该打印这些信息。
我的代码,它不工作至今如下:
#include <conio.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
int menu();
main()
{
int dato;
void create();
void Store();
void read();
void search();
clrscr();
do
{
dato=menu();
switch (dato)
{
case 1:
create();
break;
case 2:
store();
break;
case 3:
read();
break;
case 4:
search();
break;
case 5:
return -1;
default: cout<<"\n Error";
getch();
break;
}
}
while (dato !=5);
getch();
return 0;
}
int menu()
{
int op;
clrscr();
cout<<"\n File creator system";
cout<<"\n1 Create a file";
cout<<"\n2 Store Information";
cout<<"\n3 Read a file";
cout<<"\n4 Search Information";
cout<<"\n5 Exit...\n";
cout<<"\n";
cin>>op;
return op;
}
.
.
.
.
void search()
{
char ID[10],
char ID1[10];
char genre[10];
char name[20];
int age;
float height;
FILE *in;
in=fopen("c:\\exercise.txt","r");
clrscr();
printf("Enter ID: ");
fgets (ID1,10,stdin);
do{
fscanf(in,"%9s %s %s %d %4s",ID,genre,name,age,height);
if (strcmpi(ID,ID1)==0)
{
printf("ID:%9s\n",ID);
printf("Genre:%s\n",genre);
printf("Name:%s\n",name);
printf("Age:%d\n",age);
printf("Height:%4s\n",height);
}
}while(!feof(in));
fclose(in);
getch();
}
我想不通为什么它不会工作,我输入ID,并在那里停留。
@Jason - Please note:[The homework tag is obsolete](http://meta.stackexchange.com/q/147100/179533)。我回滚了。 – ArjunShankar
函数'gets()'不能安全使用。请从您的程序中删除它。它也不再是C语言的一部分(自2011年12月发布最新标准以来)。 – pmg
偏离主题,仍然:考虑使用不同于Turbo-C的编译器。它非常非常老,可能根本不用于任何严肃的项目。考虑避免使用非标准函数,如'clrscr()'和'getch()'。 – ArjunShankar