0

そのため、フラグがヒットした後、コマンドランドから値を読み取ろうとしています。一時停止するべきではないので、使用したくありません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 は、パーセンテージを取り、乱数を生成し、渡されたパーセンテージが乱数発生器を使用してヒットしたかどうかに基づいて「成功」または「失敗」を返すクラスです。

4

2 に答える 2

2

sscanf文字列から数値を読み取るために使用できます。

于 2013-09-27T17:20:04.003 に答える