CodePudding user response:
In c, open the file with fopen, read with fread, write with fwrite, if in c + +, fstream file operations can be used to manipulate filesCodePudding user response:
Be free and at leisure, for reference, wrote a
#include
#include
#include
# define N 1024
Typedef struct Tongxulu
{
char name[20];
Char addr [50].
Char phone [15].
} TXL;
/* */menu
Void Menu ();
/* save */
Void SaveTXL (TXL * arr, int n);
/* */new
Void CreateTXL (TXL * arr);
/* browse */
Void PrintTXL ();
Query/* */
Void FindTXL ();
/* modify */
Void ModifyTXL ();
Int len=0;
Int main ()
{
Int choice=1;
TXL arr [N].
While (1)
{
system("cls");
The Menu ();
The scanf (" % d ", & amp; Choice);
The switch (choice)
{
Case 1:
CreateTXL (arr);
break;
Case 2:
ModifyTXL ();
break;
Case 3:
FindTXL ();
break;
Case 4:
PrintTXL ();
break;
Case 0:
exit(0);
break;
Default:
Printf (" \ n enter an integer between 0 and 4: ");
break;
}
}
getchar();
return 0;
}
/* */menu
Void Menu ()
{
Printf (" \ n -- -- -- -- -- -- -- -- -- -- - the address book -- -- -- -- -- -- -- -- -- - \ n ");
Printf (" 1. New \ n ");
Printf (" 2. Modify the \ n ");
Printf (" 3. Query \ n ");
Printf (" 4. Browse \ n ");
Printf (" 0. Quit \ n ");
Printf (" -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n \ n ");
Printf (" select a menu item (0 to 4) : ");
}
/* */new
Void CreateTXL (TXL * arr)
{
int i;
char ch;
Printf (" \ n input class size: ");
The scanf (" % d ", & amp; Len);
getchar();
for (i=0; I{
Printf (" \ n input the first % d a student's family name address telephone: \ n ", I + 1);
The scanf (" % s % s % s ", arr [I]. Name, arr [I] addr, arr [I] phone);
}
getchar();
Printf (" \ n the new address book, want to save it (y/n) : ");
The scanf (" % c ", & amp; Ch);
If (==ch 'y' | | 'y'==ch)
{
SaveTXL (arr, len);
}
The else
{
Printf (" tip: directories not saved! \n");
}
}
/* save */
Void SaveTXL (TXL * arr, int n)
{
int i;
The FILE * fp.
If ((fp=fopen ("./temp/TXL. TXT ", "w"))==NULL)
{
Printf (" save directories failed! \n");
The exit (1);
}
for (i=0; I{
Fprintf (fp, "% s % s % s \ n", arr [I]. Name, arr [I] addr, arr [I] phone);
}
Printf (" directory to save to complete! \n");
fclose(fp);
}
/* browse */
Void PrintTXL ()
{
int i=0;
TXL stu.
The FILE * fp.
Fp=fopen ("./temp/TXL. TXT ", "r");
if (! Fp)
{
Printf (" the file does not exist! \n");
The exit (1);
}
Fscanf (fp, "% s % s % s", stu. Name, stu. Addr, stu. Phone);
Printf (" \ n -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- the address book -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n \ n ");
Printf (" % s \ \ t t % s % s \ n ", "name", "home address", "contact");
Printf (" \ n -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \ n \ n ");
while(! The feof (fp))
{
Printf (" % s \ % s \ \ t t t % s \ n ", stu. Name, stu. Addr, stu. Phone);
Fscanf (fp, "% s % s % s", stu. Name, stu. Addr, stu. Phone);
}
fclose(fp);
getchar();
getchar();
}
Query/* */
Void FindTXL ()
{
Char fphone [15], fname [20].
Int I=0, choice=1, j;
TXL s [N].
The FILE * fp.
Fp=fopen ("./temp/TXL. TXT ", "r");
if (! Fp)
{
Printf (" the file does not exist! \n");
The exit (1);
}
while(! The feof (fp))
{
Fscanf (fp, "% s % s % s", s [I]. Name, s [I] addr, s [I] phone);
i++;
}
While (1)
{
system("cls");
Printf (" \ n -- -- -- -- -- -- - -- -- -- -- -- directory query -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" 1. According to the name lookup \ n ");
Printf (" 2. According to the telephone to find \ n ");
Printf (" 0. Return \ n \ n ");
Printf (" input menu options: ");
The scanf (" % d ", & amp; Choice);
The switch (choice)
{
Case 1:
Printf (" \ n input to find the student's name: ");
The scanf (" % s ", fname);
for (j=0; J{
If (STRCMP (fname, s [j]. Name)==0)
{
Printf (" \ n -- -- -- -- -- -- - -- -- -- -- -- directory query result -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" % s \ \ t t % s % s \ n ", "name", "family address", "contact");
Printf (" \ n \ \ t t % s \ % s \ n t % s ", s [j]. Name, s [j]. Addr, s [j]. Phone);
getchar();
break;
}
}
Printf (" the students name for % s was not found! \ n ", fname);
getchar();
getchar();
break;
Case 2:
Printf (" \ n input to find students call: ");
The scanf (" % s ", fphone);
for (j=0; J{
If (STRCMP (fphone, s [j]. Phone)==0)
{
Printf (" \ n -- -- -- -- -- -- - -- -- -- -- -- directory query result -- -- -- -- -- -- -- -- -- -- -- -- \ n ");
Printf (" % s \ \ t t % s % s \ n ", "name", "family address", "contact");
Printf (" \ n \ \ t t % s \ % s \ n t % s ", s [j]. Name, s [j]. Addr, s [j]. Phone);
getchar();
break;
}
}
Printf (" the telephone for students % s was not found! \ n ", fphone);
getchar();
getchar();
break;
Case 0:
return;
break;
Default:
Printf (" \ n enter an integer between 0 and 2: ");
break;
}
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull