我想知道如何用 C 语言比较我输入argv[2]
的数字和int
代码中的数字:
EX: prog.exe file.txt 74
========================
int n;
scanf ("%d", &n);
if (n > argv[2])
{
[...]
}
如何比较这些不同类型的数据?
命令行参数是一个字符串。它们需要转换为各自的类型。就个人而言,我会首先使用整数变量和 atoi 解压缩您的 argv[2];在 中输入用户输入的值n
,然后进行比较,如下所示:
#include <stdio.h>
#include <string.h>
int n;
int argv_2;
int main(int argc, char *argv[])
{
int rc = 0;
/* Check for three arguments, program name and two passed. */
if(3 == argc)
{
argv_2 = strtol(argv[2], NULL, NULL, 10);
printf("Please enter a number for the vaue of the variable n\t: ");
scanf("%d", &n);
printf("\n\n");
if (n > argv_2)
{
printf("The value of n: %i is greater than argv[2]: %i\n",
n, argv_2);
}
else
{
printf("The value of n: %i is not greater than argv[2]: %i\n",
n, argv_2);
}
}
else
{
printf("Usage: ./test arg1 arg2 \n\n");
}
return rc;
}
atoi()
如果要将 argv[2]转换
为int
包含. 此函数只是转换字符串的第一个数字,直到遇到字符串的非数字成员。stdlib.h
atoi()