编写一个程序,判断从命令行输入的内容是否为数值
时间: 2023-03-24 14:04:30 浏览: 98
可以使用以下代码来判断从命令行输入的内容是否为数值:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int isNumeric(char *str) {
int i, len = strlen(str);
for (i = ; i < len; i++) {
if (!isdigit(str[i])) {
return ;
}
}
return 1;
}
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s <number>\n", argv[]);
return 1;
}
if (isNumeric(argv[1])) {
printf("%s is a number.\n", argv[1]);
} else {
printf("%s is not a number.\n", argv[1]);
}
return ;
}
以上代码会检查命令行输入的参数个数是否为 2,如果不是则输出使用说明并返回 1。然后调用 isNumeric 函数判断输入的参数是否为数值,如果是则输出该参数为数值,否则输出该参数不是数值。
相关问题
使用java编写2.从控制台输入三个数值,判断这三个数值是否能构成一个三角形。程序要实现以下功能: 检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生InputMismatchException异常(需要导入java.util.InputMismatchException这个类) 检查输入的命令行参数中是否有负数或0,如果有负数或0,则程序可能产生NumberValueException异常(NumberValueExcception为自定义异常) 检查输入的三个数值是否
可以构成一个三角形,如果不能构成三角形,则程序输出“不能构成三角形”,否则输出“可以构成三角形”。
以下是Java代码实现:
```
import java.util.InputMismatchException;
import java.util.Scanner;
class NumberValueException extends Exception {
public NumberValueException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double[] sides = new double[3];
try {
for (int i = 0; i < 3; i++) {
System.out.print("请输入第" + (i + 1) + "个边长:");
sides[i] = input.nextDouble();
if (sides[i] <= 0) {
throw new NumberValueException("边长不能为非正数!");
}
}
if (sides[0] + sides[1] <= sides[2] ||
sides[1] + sides[2] <= sides[0] ||
sides[0] + sides[2] <= sides[1]) {
System.out.println("不能构成三角形!");
} else {
System.out.println("可以构成三角形!");
}
} catch (InputMismatchException e) {
System.out.println("输入格式错误!");
} catch (NumberValueException e) {
System.out.println(e.getMessage());
}
}
}
```
这个程序使用了try-catch语句来捕捉可能出现的异常。在输入边长时,如果出现格式错误的异常,就会被catch块中的代码捕捉到并输出错误信息;如果输入的边长为负数或0,就会抛出自定义的NumberValueException异常,并被相应的catch块捕捉到。最后,程序根据三个边长是否能构成三角形来输出结果。
编写java程序求一个自然数的阶乘,要求该自然数可以由命令行参数输入。注意: 使用命令行输入参数时,用户可能没有给出参数,或给出非自然数的参数。另外,用户输 入的数值有可能为负数,或者存在其他异常。
对于您的问题,我可以给出以下的java代码实现:
```java
public class Factorial {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("请您输入一个自然数");
return;
}
int num = 0;
try {
num = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.out.println("输入的参数非自然数,请重新输入");
return;
}
if (num < 0) {
System.out.println("输入的参数为负数,请重新输入");
return;
}
long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
System.out.println(num + "的阶乘为:" + result);
}
}
```
以上代码可以在命令行输入一个自然数,然后求出其阶乘,并输出结果。同时,该程序也能够判断用户输入的参数是否为自然数,以及是否存在异常情况。
阅读全文