我想从用户那里得到一个整数。但我想知道fscanf(stdin, "%d", &x);
和scanf("%d", &x);
之间有什么区别?
答案 0 :(得分:2)
stdin与fscanf和scanf有什么区别?
scanf
函数等同于fscanf
,参数stdin
插入scanf
的参数之前。 C11§7.21.6.42
除了输入不同数量的代码外,它们是相同的。
答案 1 :(得分:1)
除非您#defined fscanf
,scanf
或stdin
,否则两次调用都会做同样的事情。请注意,此类重新定义将调用未定义的行为。
某些标准输入输出函数具有较短版本,可用于处理stdin
或stdout
:
fscanf(stdin, ...)
相当于scanf(...
getc(stdin)
与getchar()
putc(c, stdout)
可以写成putchar(c)
fprintf(stdout, "Hello world\n");
通常缩写为printf("Hello world\n");