stdin与fscanf和scanf有什么区别

时间:2016-03-18 22:09:49

标签: c scanf

我想从用户那里得到一个整数。但我想知道fscanf(stdin, "%d", &x);scanf("%d", &x);之间有什么区别?

2 个答案:

答案 0 :(得分:2)

  

stdin与fscanf和scanf有什么区别?

scanf函数等同于fscanf,参数stdin插入scanf的参数之前。 C11§7.21.6.42

除了输入不同数量的代码外,它们是相同的。

答案 1 :(得分:1)

除非您#defined fscanfscanfstdin,否则两次调用都会做同样的事情。请注意,此类重新定义将调用未定义的行为。

某些标准输入输出函数具有较短版本,可用于处理stdinstdout

  • fscanf(stdin, ...)相当于scanf(...
  • getc(stdin)getchar()
  • 相同
  • putc(c, stdout)可以写成putchar(c)
  • fprintf(stdout, "Hello world\n");通常缩写为printf("Hello world\n");