使用scanf选择性输入

时间:2013-12-25 07:47:37

标签: c scanf

从n个数字的输入(n的值已知)以空格分隔, 例如(这里n是6): 3 5 8 9 13 2

如果我只想接受第2和第5个号码并忽略其余号码,我该如何使用scanf?

我发现接受数组中的数字并仅使用所需的数字有点多余,所以我正在寻找更聪明的选择。

6 个答案:

答案 0 :(得分:2)

试试这个

int num,number1,number2;
for(int i = 0; i < 6; i++)
{
    scanf("%d", &num);
    if(i == 1)
         number1 = num;
    if(i == 4)
         number2 = num;
}

答案 1 :(得分:2)

scanf("%*d%d%*d%*d%d%*d", &firstNumber, &secondNumber);

试试这个。

%*d读取值,但以善意的名义忽略它。

答案 2 :(得分:2)

如果已知号码n是固定号码(总是n = 6)

然后您可以使用以下scanf

int a2, a5;
scanf("%*d %d %*d %*d %d %*d", &a2, &a5 );

答案 3 :(得分:0)

我会使用scanf读取每个数字。在某些temp变量中读取不需要的变量,在数组或任何变量中读取其他变量(根据需要)

答案 4 :(得分:0)

scanf("%*d %d %*d %*d %d %*d", &i, &j)

答案 5 :(得分:0)

int v[6];
scanf( "%d %d %d %d %d %d", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5] );

v[1]v[4]包含您示例中的答案。