如何将 c 变量设置为如果输入则应打印 "hello world 3" 或如果未输入则仅打印前两个?
How can I set the c variable to that if entered then it should print "hello world 3" or if not entered then only the upper two should be printed?
这是一个程序,用于在 运行 时间从用户那里获取输入并根据输入的参数打印 hello world。用户可以打印 2 hello world。然而,第三个 hello world 是有条件的,取决于是否输入 c 值。
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int main(int argc, char *argv[])
{
unsigned int a, b, c;
a = strtoul(argv[1], 0, 0);
b = strtoul(argv[2], 0, 0);
c = strtoul(argv[3], 0, 0);
int *p= NULL;//initialize the pointer as null.
printf("\n first no %d \n ", a);
printf("\n second no %d \n ", b);
if ( c == *p)
{
printf("\n third no %d \n ", c);
}
return 0;
}
- 假设我 运行 程序为 ./hello 1 2 -> 这将打印“hello
世界 1" "你好世界 2".
- 如果我 运行 程序为 ./hello 1 2 3
-> 这将打印“hello world 1”“hello world 2”“hello world 3”。
- 如何修正我的程序以获得预期的效果?
main
函数的第一个参数argc
表示传递给程序的参数个数,所以你可以通过检查argc
的值来判断你程序的行为.
(例如,如果您 运行 程序为 ./hello 2 7 1 8
,那么 argc
的值将是 5
。)
#include <stdio.h>
int main(int argc, char *argv[])
{
for (int i = 1; i < argc; ++i)
{
printf("hello world %s\n", argv[i]);
}
return 0;
}
这是一个程序,用于在 运行 时间从用户那里获取输入并根据输入的参数打印 hello world。用户可以打印 2 hello world。然而,第三个 hello world 是有条件的,取决于是否输入 c 值。
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int main(int argc, char *argv[])
{
unsigned int a, b, c;
a = strtoul(argv[1], 0, 0);
b = strtoul(argv[2], 0, 0);
c = strtoul(argv[3], 0, 0);
int *p= NULL;//initialize the pointer as null.
printf("\n first no %d \n ", a);
printf("\n second no %d \n ", b);
if ( c == *p)
{
printf("\n third no %d \n ", c);
}
return 0;
}
- 假设我 运行 程序为 ./hello 1 2 -> 这将打印“hello 世界 1" "你好世界 2".
- 如果我 运行 程序为 ./hello 1 2 3 -> 这将打印“hello world 1”“hello world 2”“hello world 3”。
- 如何修正我的程序以获得预期的效果?
main
函数的第一个参数argc
表示传递给程序的参数个数,所以你可以通过检查argc
的值来判断你程序的行为.
(例如,如果您 运行 程序为 ./hello 2 7 1 8
,那么 argc
的值将是 5
。)
#include <stdio.h>
int main(int argc, char *argv[])
{
for (int i = 1; i < argc; ++i)
{
printf("hello world %s\n", argv[i]);
}
return 0;
}