そのため、フラグがヒットした後、コマンドランドから値を読み取ろうとしています。一時停止するべきではないので、使用したくありませんscanf
。次のように引数を取る必要があります
run -p 60 10
。60 はパーセンテージ値、10 はプロセス数です。ユーザー入力のために一時停止する scanf を使用せずに、それらを変数に読み込むにはどうすればよいでしょうか? argv[2]
andを使用して値を割り当てる必要がありargv[3]
ますか? 文字列ではなく整数値が必要です。
これまでの私のコードは次のとおりです。
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
bool Gamble(int percent);
int main(int argc, char *argv[])
{
int c;
int pflag = 0;
int vflag = 0;
int percent;
int processes;
while ((c = getopt (argc, argv, "-p-v: ")) != -1)
{
switch (c)
{
case 'p':
pflag = 1;
percent = argv[2];
//scanf("%d", &percent);
break;
case 'v':
vflag = 1;
break;
default:
processes = argv[3];
}
}
printf("%d\n", percent);
printf("%d\n", processes);
Gamble(percent);
return 0;
}
PS Gamble は、パーセンテージを取り、乱数を生成し、渡されたパーセンテージが乱数発生器を使用してヒットしたかどうかに基づいて「成功」または「失敗」を返すクラスです。