如何使用scanf读取输入指定数量的-1000~1000区间整数并打印
C语言不定数量整数读取实现方案
核心思路
- 利用
scanf函数的返回值判断读取状态:scanf("%d", &变量)返回1时表示成功读取到1个整数,返回0表示遇到不符合%d格式的输入,返回EOF表示输入流结束,不需要提前预设输入个数。 - 每次读取到整数后判断是否在[-1000, 1000]范围内,符合要求的再输出。
完整示例代码
#include <stdio.h> int main() { int num; // 循环读取直到输入结束或遇到非%d格式内容 while (scanf("%d", &num) == 1) { // 过滤符合取值范围的整数 if (num >= -1000 && num <= 1000) { printf("%d\n", num); } } return 0; }
注意事项
- 触发输入结束的操作:Windows系统命令行中按下
Ctrl+Z后回车,Linux/macOS系统命令行中按下Ctrl+D即可结束输入。 - 输入中如果混入非数字格式的内容,
scanf遇到后会直接终止读取,符合仅处理%d格式整数的要求。
内容的提问来源于stack exchange,提问作者SajLenc
相关产品推荐
相关产品推荐

