fscanf返回什么值?

函数原型int fscanf(FILE *stream, char *format[,argument...]);

请问 fscanf返回一个什么样的int值啊?

1.返回实际读取的数据个数,出错或者到结尾返回EOF。
函数原型:
  DWORD GetModuleFileName(
  HMODULE hModule,
  LPTSTR lpFilename,
  DWORD nSize
  );
2.函数参数说明:
  hModule HMODULE 装载一个程序实例的句柄。参数为NULL,函数返回当前应用程序全路径。lpFileName LPTSTR 是存放返回内存块的指针,是输出参数DWORD ,装载到缓冲区lpFileName的最大值,strcat是将szBuf与后边的值连接起来。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-28
老兄啊! 整体来看返回的值的类型是int
但是 fscanf返回一个什么样的int值 这样看函数体啊!
第2个回答  2008-07-28
我给你解释下:
[Copy to clipboard] [ - ]CODE:RETURN VALUE
These functions return the number of input items successfully matched
and assigned, which can be fewer than provided for, or even zero in the
event of an early matching failure.
举个例子:
# include < stdio . h >
main ( )
{
char buf [ 20 ] ;
int num ;
FILE * fp =fopen("f1","r+w") ;
if ( fp = = NULL )
{
perror ( "open" ) ;
exit ( 1 ) ;
}
num = fprintf ( fp , "hello" ) ;
printf ( "%d\n" , num ) ;
rewind ( fp ) ;
num = fscanf ( fp , "%s" , buf ) ;
printf ( "%d\n" , num ) ;
write ( 1 , buf , num ) ;

} 执行结果是
5
1

fscanf()函数的返回值不是实际写入缓冲区的字符个数
而是对几个缓冲区成功进行了写 *** 作,就返回这个个数。
程序中只对buf这一个缓冲区进行了scanf *** 作,所以返回值是1

这是比较深的东西,慢慢领悟吧
第3个回答  推荐于2016-09-15
正常情况返回它读取的字符的个数.
异常情况返回0.本回答被提问者采纳
相似回答