Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595382
  • 博文数量: 136
  • 博客积分: 893
  • 博客等级: 中士
  • 技术积分: 1001
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-31 09:18
个人简介

生命可以终止,梦想不会!

文章分类

全部博文(136)

文章存档

2016年(4)

2015年(2)

2014年(5)

2013年(7)

2012年(118)

分类: C/C++

2012-04-01 20:28:02

关于C语言中的输入和输出函数,本人总结了下:如下,
如果又什么错误请指出,中间有几个时转别人的(在这里说明下)
 
printf函数:
printf是标准输出流的输出函数,用来向屏幕这样的标准输出设备输出,这个用说了;

fprintf函数:
fprintf()传送输出到一个流中的函数
原形:int fprintf(FILE *stream,const char *format[,argument,...])
功能:①向文件指针指向的文件输出ASCⅡ代码
   ②向显示器输出错误信息
使用形式:
   ①fprintf(文件指针,"输出格式",输出项系列);
   ②fprintf(stderr,"错误信息");
使用实例:fprintf(stream,"%d %c %f",i,c,f);
     其中定义FILE *stream;
         int i; char c; float f;
返回值:成功则返回输出的字节数,错误则返回EOF。
头文件:stdio.hfprintf(文件指针,格式字符串,输出表列); 他是把后面的写入到文件指针里面的;
fprintf(fp,"%d%c",j,ch);
 
 
sprintf函数:
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的
格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终
函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中....
 
 
snprintf函数:
  int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);
函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n
的话,将不会溢出。
函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。
Result1(推荐的用法)
#include
#include
int main()
{
  char str[10]={0,};
  snprintf(str, sizeof(str), "0123456789012345678");
  printf("str=%s\n", str);
  return 0;
}
root] /root/lindatest
$ ./test
str=012345678
Result2:(不推荐使用)
#include
#include
int main()
{
  char str[10]={0, };
  snprintf(str, 18, "0123456789012345678");
  printf("str=%s\n", str);
  return 0;
}

root] /root/lindatest
$ ./test
str=01234567890123456
 
snprintf函数返回值的测试:
#include
#include
int main()
{
  char str1[10] ={0, };
  char str2[10] ={0, };
  int ret1=0,ret2=0;
  ret1=snprintf(str1, sizeof(str1), "%s", "abc");
  ret2=snprintf(str2, 4, "%s", "aaabbbccc");
  printf("aaabbbccc length=%d\n", strlen("aaabbbccc"));
  printf("str1=%s,ret1=%d\n", str1, ret1);
  printf("str2=%s,ret2=%d\n", str2, ret2);
  return 0;
}
[root] /root/lindatest
$ ./test
aaabbbccc length=9
str1=abc,ret1=3
str2=aaa,ret2=9
 
 
scanf函数:
  printf是标准输出流的输出函数;这里就不介绍了;
fcanf函数:
  fscanf(文件指针,格式字符串,输入表列);
如:
 fscanf(fp,"%[^,],%d",str,&num);
 printf("%s %d\n",str,num);
从fp所指向的文件里读取信息;
fscanf函数,fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。 两者的区别在于 fscanf 函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件;
 
sscanf函数:
  从数组中读入信息;
sscanf() - 从一个字符串中读进与指定格式相符的数据.
函数原型:  
int sscanf( const char *, const char *, ...);  
int sscanf(const char *buffer,const char *format,[argument ]...);  
buffer 存储的数据  
format 格式控制字符串
argument 选择性设定字符串
sscanf会从buffer里读进数据,依照argument的设定将数据写回。
阅读(1527) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~