C 如何在命令行中传递特定类型的数字?
我知道如何通过命令行传递一个整数,但是如果我需要一个特定范围的整数,我该怎么做呢 例如,我有一个程序,它接受一系列数字并将它们除以五。数字必须在30-105之间,并且必须是5的倍数 如果任何数字超出该范围且不是5的倍数,则会出现错误消息C 如何在命令行中传递特定类型的数字?,c,command-line,integer,C,Command Line,Integer,我知道如何通过命令行传递一个整数,但是如果我需要一个特定范围的整数,我该怎么做呢 例如,我有一个程序,它接受一系列数字并将它们除以五。数字必须在30-105之间,并且必须是5的倍数 如果任何数字超出该范围且不是5的倍数,则会出现错误消息 我该怎么做呢?你基本上要做三件事: 从命令行获取所有数字 检查它们是否有效 如有必要,打印错误消息 让我们先把2号让开,检查一下有效性 bool isValid(int number) { return (number >= 30 &&am
我该怎么做呢?你基本上要做三件事:
bool isValid(int number) {
return (number >= 30 && number <= 105 && number % 5 == 0);
}
你基本上要做三件事:
bool isValid(int number) {
return (number >= 30 && number <= 105 && number % 5 == 0);
}
您可以传递字符串(表示整数——您只能真正传递字符串)。。。从字符串中得到整数值。。。然后你检查它们是否在你想要的范围内。。。如果没有,则打印一条错误消息。你到底对哪个部分有问题?
if(!(30@Dmitri检查它们是否在范围部分。如果它确实打印了一个错误,它如何返回到提示命令行输入另一个数字?这篇文章将向您展示如何检查传入的参数是否为有效的整数,但您自己的代码需要检查范围并向用户报告错误。@BLUEPIXY我必须使用一个while l吗oop,以便在收到错误消息时返回命令行?您可以传递字符串(表示整数——您只能真正传递字符串)…然后从字符串中获取整数值…然后检查它们是否在所需的范围内…如果不在范围内,则打印错误消息。您到底遇到了什么问题?if(!(30@Dmitri检查它们是否在范围部分。如果它确实打印了一个错误,它如何返回到提示命令行输入另一个数字?这篇文章将向您展示如何检查传入的参数是否为有效的整数,但您自己的代码需要检查范围并向用户报告错误。@BLUEPIXY我必须使用一个while l吗oop,以便在收到错误消息时返回命令行?这是否必须是一个while循环,以便再次提示命令行检查“right”数字类型?无法提示命令行;argv
中的所有内容在启动时都是固定的。如果您想让用户输入另一个数字,您需要使用例如scanf
从stdin读取它。如果您使用的是bool
,则需要将其定义为非标准类型。这需要一段时间吗循环,以便再次提示命令行检查“right”数字类型?无法提示命令行;argv
中的所有内容在启动时都是固定的。如果您想让用户输入另一个数字,您需要使用例如scanf
从stdin读取它。如果您使用的是bool
,则需要将其定义为非标准类型。
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
int main() {
int number;
while (true) {
printf("Enter a number: ");
scanf("%d", &number);
if (isValid(number)) {
break;
} else {
puts("Not a valid number!");
}
}
// do something
}