//优化版
#include <stdio.h>
int main()
{
FILE *fp;
int num, numCur, flag = 0;
printf("\nInput a integer: ");
scanf("%d", &num);
//"r+" 以可读写方式打开文件,该文件必须存在。
//"w" 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
//"a"为追加写、只写
//"a+"为追加写、可读可写
if ((fp = fopen("a.dat", "a+"))!=NULL)
{
while (!feof(fp))
{
fscanf(fp, "%d", &numCur);
if (numCur == num)flag = 1;
}
if (!flag)
{
fprintf(fp, " %d", num); //因为要将这个数字写到文件中(相当于计算机input),所以用的是fp1
fclose(fp);
}
}
}
/*五.试编写一个程序,从键盘上输入一个整数,在整数文件"a.dat"中查找,要求:
1.若文件"a.dat"不存在,则建立一个新文件"a.dat",将该整数写入文件;
2.若文件中找到了这个整数,则显示数据存在,否则将该数据写入文件。*/
#include <stdio.h>
int main()
{
FILE *fp1, *fp2;
int num, numCur, flag = 0;
printf("\nInput a integer: ");
scanf("%d", &num);
//“r+” 以可读写方式打开文件,该文件必须存在。
//“w” 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
if ((fp1 = fopen("a.dat", "r+"))==NULL)
{
if((fp2 = fopen("a.dat", "w")) != NULL)
{
printf("No File! Create it and write the number into it!\n");
fprintf(fp2, "%d", num);
fclose(fp2);
}
}
else
{
printf("\nYes!Find the File!\n");
while (!feof(fp1))
{
fscanf(fp1, "%d", &numCur);
if (numCur == num)
{
printf("\nFind the number: %d\n", num);
flag = 1;
}
}
if (!flag)
{
printf("\nNo find the number: %d append it into the file!\n", num);
fprintf(fp1, " %d", num); //因为要将这个数字写到文件中(相当于计算机input),所以用的是fp1
fclose(fp1);
}
}
}