C++中scanf和printf系列函数简介

C++中,scanf系列函数用于输入,printf系列函数用于输出。

1 scanf系列函数

常用的scanf系列函数包括scanf()sscanf()fscanf()

1.1 scanf()函数

scanf()函数从标准输入流stdin中读取数据,并且将数据写入到指定的变量中。

int a,b,c;

scanf("%d,%d,%d", &a, &b, &c);

需要注意的是,写入的指定变量是指针类型。scanf()函数实际上就是读取键盘在控制台中的输入。

关于scanf()的详细用法请参考

《scanf()gets()getline()读取输入

《VS2015中使用scanf()不报错的设置方法

1.2 sscanf()函数

sscanf()函数从字符串缓冲区中读取数据,并将数据保存到指定的变量中。其格式为

int sscanf(  

   const char *buffer,  

   const char *format [,  

   argument ] ...   

);

其中,参数buffer是存储数据的缓冲区;format指定了读取的格式;argument是一个可选的变量,从buffer中读取的数据保存在该变量中。

char buf[512];
sscanf("123456", "%s", buf);

此时,buf的值是123456

1.3 fscanf()函数

fscanf()函数从流(stream)中读取数据,并将数据保存在指定的变量中。该函数的格式为

int fscanf(   

   FILE *stream,  

   const char *format [,  

   argument ]...   

);

其中,streamFILE结构的指针;format指定了读取的格式;argument是一个可选的变量,从buffer中读取的数据保存在该变量中。

相关链接:

C/C++中,将每个文件简单地作为顺序字节流,每个文件用文件结束符结束。FILE结构体用来对文件进行操作,该结构体在stdio.h中定义。

FILE *stream;

char s[80];

fopen_s( &stream, "fscanf.txt", "w+" );

fscanf( stream, "%s", s );

fclose( stream );

以上代码的作用是从fscanf.txt文件中读取数据,并将数据保存到s中。

从以上分析可知,scanf()sscanf()fscanf()三个函数都是数据保存到指定变量中。其区别在于读取源不同,scanf()函数的读取源是标准输入流;sscanf()函数的读取源是字符串缓冲区;fscanf()函数的读取源是文件。

2 printf系列函数

常用的scanf系列函数包括printf()sprintf()fprintf()。以上三个函数的主要作用是将数据保存到指定的目的变量中。其区别在于目的变量不同,printf()函数的目的变量是标准输出流;sprintf()函数的目的变量是字符串缓冲区;fprintf()函数的目的变量是文件。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/80664904