C语言程序编写,已知文件data.txt中存储了一组整数,从键盘上输入一个整数,在文件中查找该数据。如果找到,输出该数据的位置;否则输出未找到信息
时间: 2024-02-12 12:04:54 浏览: 114
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
可以按照以下步骤进行:
1. 打开文件data.txt,判断是否成功打开。
2. 从键盘上读入一个整数。
3. 读取文件中的每一个整数,比较是否与输入的整数相等。
4. 如果找到了相等的整数,输出该数据的位置,并结束程序。
5. 如果文件中的所有整数都比较完毕,仍未找到相等的整数,输出未找到信息。
6. 关闭文件。
具体实现的代码如下:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file data.txt\n");
return 1;
}
int x, pos = 0, found = 0;
printf("Enter an integer to search in the file: ");
scanf("%d", &x);
int data;
while (fscanf(fp, "%d", &data) != EOF) {
pos++;
if (data == x) {
printf("%d is found at position %d in the file\n", x, pos);
found = 1;
break;
}
}
if (!found) {
printf("%d is not found in the file\n", x);
}
fclose(fp);
return 0;
}
```
在这个程序中,我们使用了`fopen`函数打开了`data.txt`文件,并以只读模式打开。然后,我们使用`scanf`函数从键盘上读入一个整数。接着,我们使用`fscanf`函数逐个读取文件中的整数,并与输入的整数进行比较。如果找到相等的整数,我们就输出该数据的位置,并结束程序;否则我们继续比较,直到文件中的所有整数都比较完毕。如果仍未找到相等的整数,我们就输出未找到信息。最后,我们使用`fclose`函数关闭文件。
阅读全文