C语言读取一整行整数
时间: 2024-10-16 22:14:07 浏览: 30
c代码-读取一个正整数,显示其位数。
在C语言中,读取一行整数通常涉及到文件操作、输入流以及处理字符串。以下是一个简单的示例,展示了如何使用`fgets()`函数配合`sscanf()`解析整数:
```c
#include <stdio.h>
#define MAX_LINE_LENGTH 100 // 假设每行最多包含100个字符
int main() {
char line[MAX_LINE_LENGTH]; // 存储一行输入
FILE* input = fopen("input.txt", "r"); // 打开文件(假设是.txt格式)
if (input == NULL) {
printf("Failed to open file.\n");
return 1;
}
fgets(line, MAX_LINE_LENGTH, input); // 读取一行数据
line[strcspn(line, "\n")] = '\0'; // 去除换行符
int numbers[] = {0}; // 声明一个可以存放多个整数的数组
int num_count = sscanf(line, "%d%n", &numbers[0], &num_count); // 解析并计数整数
if (num_count > 0 && num_count <= sizeof(numbers)/sizeof(int)) {
printf("Read %d integers: %d\n", num_count, numbers[0]);
} else {
printf("Invalid or no integer found in the line.\n");
}
fclose(input);
return 0;
}
```
这个程序首先打开一个文件,然后使用`fgets()`读取一行数据到`line`数组中。接着,`sscanf()`函数尝试将`line`中的内容解析成一个整数,并存储在`numbers`数组的第一个元素中。`%n`特殊占位符用于获取匹配到的数字的数量。
阅读全文