C语言如何读取文件中的数字
时间: 2023-09-28 18:13:40 浏览: 429
在C语言中,可以使用标准库函数 `fscanf` 来读取文件中的数字。下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *file;
int num;
// 打开文件
file = fopen("filename.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 读取文件中的数字
while (fscanf(file, "%d", &num) == 1) {
printf("%d\n", num);
}
// 关闭文件
fclose(file);
return 0;
}
```
上述代码中,`fopen` 函数用于打开文件,第一个参数是文件名(可以是相对或绝对路径),第二个参数是打开方式("r" 表示只读)。如果文件打开成功,则返回一个指向 `FILE` 结构体的指针;否则返回 `NULL`。
接下来,使用 `fscanf` 函数以特定格式(`"%d"` 表示整数)读取文件中的数字,并将其存储在 `num` 变量中。`fscanf` 函数返回成功读取的项目数,当读取到文件末尾时,返回值为 0。
在循环中,我们可以对读取到的数字进行进一步处理。最后,使用 `fclose` 函数关闭文件。
请记得将代码中的 "filename.txt" 替换为你要读取的实际文件名。
相关问题
C语言读取文件统计数字数量
可以使用C语言的文件操作函数来读取文件并统计数字的数量。以下是一个示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *file;
char filename[100];
char ch;
int count = 0;
printf("请输入文件名:");
scanf("%s", filename);
file = fopen(filename, "r");
if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}
while ((ch = fgetc(file)) != EOF) {
if (isdigit(ch)) { // 判断字符是否为数字
count++;
}
}
fclose(file);
printf("文件中数字的数量为:%d\n", count);
return 0;
}
```
在这个例子中,程序会要求用户输入文件名,并使用`fopen()`函数打开该文件。然后,它会逐个读取文件中的字符,使用`isdigit()`函数判断字符是否为数字,如果是数字则将计数器加一。最后,程序会关闭文件并输出数字的数量。
请注意,在使用该程序时需要确保输入的文件名是正确的,并且指定的文件在程序所在的目录下或者提供了正确的路径。
c语言读取文件并把数字存入数组
可以通过使用标准库函数`fscanf()`从文件中读取数字,并将它们存储到数组中。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
int num_array[100]; // 假设最多读取 100 个数字
int i = 0, num;
fp = fopen("input.txt", "r"); // 打开文件
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
// 读取文件中的数字,并存储到数组中
while (fscanf(fp, "%d", &num) == 1) {
num_array[i++] = num;
}
// 输出数组中的数字
for (int j = 0; j < i; j++) {
printf("%d ", num_array[j]);
}
printf("\n");
fclose(fp); // 关闭文件
return 0;
}
```
这个程序假设要读取的数字以空格符分隔,并且存储到名为`input.txt`的文件中。程序打开文件,读取文件中的数字,并将它们存储到数组`num_array`中。最后,程序输出数组中的数字,并关闭文件。