c - scanf返回值不符合预期

标签 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

最佳答案

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

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

关于c - scanf返回值不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25687998/

相关文章:

c - 从文本文件中读取单词并存储到动态数组中 C 中的 Valgrind 错误

创建独立的 C 可执行文件

lisp - 在 lisp 编程中返回一个值

java - 如何将值返回到二维数组?

c - fscanf : how to read but not assign commas?

c++ - 如何使用 scanf 和 ddd 调试程序?

gcc - 使用 gcc 时跳过 scanf() (和 cin)语句

c - 在 ARM 中使用 'restrict' 关键字会改进我的代码吗?

C 数组值因 printf 语句而改变?

language-agnostic - 只输出的函数应该返回任何东西吗?