我需要做一个"连接4"基于用户输入的网格程序。如何在没有任何缓冲的情况下检测扫描的数量,或者接受"一个简短的输入而不等待另一个论点?在这种情况下,我希望用户在程序开头输入3个值。
Example 1
./connectn.out 5 20
Not enough arguments entered
Example 2
./connectn.out 13 2 3 4 5
Too many arguments entered
答案 0 :(得分:0)
您需要的是argc和argv参数。您可以使用argc作为参数计数,使用argv作为参数本身。
以下是您的示例代码:
#include <stdio.h>
#include <string.h>
int main (int argc, char * argv[])
{
// Check the argument count first
if (argc != 4)
{
if (argc > 4)
{
printf("Too many arguments entered!\n");
}
else
{
printf("Not enough arguments entered!\n");
}
return -1;
}
else
{
// Check a specific argument (-h)
if (strcmp(argv[3], "-h") != 0)
{
printf("Invalid option!\n");
return -1;
}
}
printf("Hello World.\n");
return 0;
}
请注意,./connectn.out 5 20
argc为3.因为“connectn.out”也很重要。
以下是一些示例输出:
./out 1 2
Not enough arguments entered!
./out 1 2 3 4
Too many arguments entered!
./out 1 2 -a
Invalid option!
./out 1 2 -h 4
Too many arguments entered!
./out 1 2 -h
Hello World.
希望这有帮助。
巴里斯