1. 用scanf清理缓冲区数据

scanf("%*[^\n]");

scanf("%*c");

2. 格式转换

将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char   *ultoa(unsigned   long   value,char   *string,int   radix)   
   
将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数 
char   *ltoa(long   value,char   *string,int   radix)   

将整数value转换成字串存入string,radix为转换所用基数.  
char   *itoa(int   value,char   *string,int   radix) 
 
将字符串nptr转换成双精度数,并返回这个数,错误返回0   
double	atof(char   *nptr)                   

将字符串nptr转换成整型数,并返回这个数,错误返回0  
int     atoi(char   *nptr)                               
 
将字符串nptr转换成长整型数,并返回这个数,错误返回0    
long     atol(char   *nptr)     
 
将字符串str转换成双精度数,并返回这个数, 
double	strtod(char   *str,char   **endptr)   
  
将字符串str转换成长整型数,   并返回这个数,
long	strtol(char   *str,char   **endptr,int   base)   

3. 

fprintf()函数

int fprintf(FILE * stream, const char * format, ...);

函数说明:fprintf()会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。
返回值:关于参数format 字符串的格式请参考printf(). 成功则返回实际输出的字符数, 失败则返回-1, 错误原因存于errno 中.

 

范例
#include <stdio.h>
main()
{
    int i = 150;
    int j = -100;
    double k = 3.14159;
    fprintf(stdout, "%d %f %x \n", j, k, i);
    fprintf(stdout, "%2d %*d\n", i, 2, i);
}

执行:
-100 3.141590 96
150 150

fscanf()函数 

int fscanf(FILE *stream, char *format,[argument...]);

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。  

int fscanf(文件指针,格式字符串,输入列表);

返回值:整型,数值等于[argument...]的个数 

for example:
  FILE*fp;
  char a[10];
  int b;
  double c;
  fscanf(fp,"%s%d%lf",a,&b,&c)

4.