scanf返回值与预期不符

时间:2014-09-05 14:17:54

标签: c return-value scanf

Scanf应该返回输入的字符数。但奇怪的是一直只返回1。

scanf ("%d",&num_test_cases);   

for (i=0;i<num_test_cases;i++)
{
    level=scanf ("%s",ch);
    printf ("\n %s\n",ch);
    printf ("%lld\n",level);

}

示例输入:

4
lrl
rll
r
lllr

输出:

lrl
1
rll
1
r
1
lllr
1

1 个答案:

答案 0 :(得分:8)

在C中,scanf()返回成功读取的项目数... 实际上,printf()返回在输出上成功写入的字符数!

因此,由于您的scanf每次迭代只接受1个输入,因此,程序中的level变量在每次迭代时返回1!