欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

总结:c的输入输出函数

程序员文章站 2024-03-23 22:10:46
...

 

1.scanf()&printf()

2.getchar()&putchar() 

3.gets()&puts()函数

4.字符数组

5.sscanf与sprintf


1.scanf()&printf()

在使用输入输出函数的时候,不管是从文件还是控制台,它都是会先存放在缓冲区里面,但需要使用的时候才会在缓冲区里面提取。 

scanf()函数是从标准输入设备(键盘)读取数据,并将值存放在变量中。scanf("%d",&n);

总结:c的输入输出函数

\n                        换行
\f                         清屏并换页
\r                          回车
\t                         Tab符
%o 输入八进制整数
%x 输入十六进制整数
  • scanf("%d,%d",&a,&b); 

输入: 3,4 (逗号与"%d,%d"中的逗号对应)

  • 如果输入3 4 用空格隔开的数字两个%d之间可以不加空格

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

因为scanf()函数接收输入数据时,遇空格、“回车”、“tab”键  结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)

#include <stdio.h>
int main()
{
    char str[11];
    scanf("%s",str);
    printf("%s",str);

    return 0;
}

输入:abc def
输出:abc

  • 在用"%c"输入时,空格和“转义字符”均作为有效字符。 //以下【空格】代表‘ ’一个空格

scanf("%c%c%c",&c1,&c2,&c3);   
输入:a【空格】b【空格】c
结果:a→c1,【空格】→c2,b→c3 (其余被丢弃)

printf()函数是格式化输出函数, 用于向标准输出设备按规定格式输出信息。printf("%d",n);

只有double型变量,在scanf中式%lf,在printf中是%f。

总结:c的输入输出函数

关于常见的输出格式:

  • 1. %md可以使不足m位的 int 型变量以m位进行右对齐输出,其中高位用空格补齐:如果变量本身超过m位, 则保持原样。

总结:c的输入输出函数

  • %0md只是在%md中间多加了0。和%md的唯一不同点在于, 当变量不足m位时,将在前面补足够数量的。而不是空格。

总结:c的输入输出函数

  • %.mf可以让浮点数保留m位小数输出, 这个 “保留” 使用的是精度的 “ 四舍六入五成双 ”规则很多题目都会要求浮点数的输出保留××位小数(或是精确到小数点后××位〉,就是用这个格式来进行输出(如果是四舍五入,那么需要用到后面会介绍的 round 函数)。 

总结:c的输入输出函数

 

2.getchar()&putchar() 

getchar 用来输入单个字符, putchar 用来输出单个字符, 在某些scanf 函数使用不便的场合可以使用getchar 来输入字符。

getchar()  从缓冲区读走一个字符,相当于清除缓冲区,一般用于取走回车符。  

总结:c的输入输出函数

第一个字符‘a’被c1接收;第二个字符'b'虽然被接收, 但是没有将它存储在某个变量中.

 

3.gets()&puts()函数

gets(s);

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。

gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s",&s)函数输入字符串时,如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止

 

4.字符数组

 

 

总结:c的输入输出函数

5.sscanf与sprintf

总结:c的输入输出函数总结:c的输入输出函数

输出结果为233

sprintf函数

(1)将数字变量转换为字符串。

(2)得到整型变量的16进制和8进制字符串。

(3)连接多个字符串。

char str[256] = { 0 };
int data = 1024;
//将data转换为字符串
sprintf(str,"%d",data);
//获取data的十六进制
sprintf(str,"0x%X",data);
//获取data的八进制
sprintf(str,"0%o",data);
const char *s1 = "Hello";
const char *s2 = "World";
//连接字符串s1和s2
sprintf(str,"%s %s",s1,s2);

还可以参考链接:https://www.cnblogs.com/wangtianxj/archive/2009/07/04/1516646.html