博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C字符串输入输出函数
阅读量:4685 次
发布时间:2019-06-09

本文共 990 字,大约阅读时间需要 3 分钟。

下面就几个常用的字符串输入输出函数做个小小的总结TAT

使用时添加头文件:#include<stdio.h>.

scanf("格式控制字符串",变量地址列表):(printf),每次只能接收一个单词,无法接收整行数据

gets(字符数组名或指针):读取一整行的输入,以回车结束读取,如果用来保存接收到数据的空间不够大就会导致缓冲区溢出,覆盖缓冲区之后的数据,在C11中被废弃.gets()在接收数据时,输入换行符时会丢弃,不会被读取,没有换行的效果,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。成功,返回与参数相同的指针。

puts(缓冲区):将'\0'转换为回车换行(输出时将添加换行符),其调用方式为,puts(s):其中s为字符串字符输出时会在串尾添加换行符。

get_s(缓冲区,最大长度):缓冲区不够大时运行时会抛出异常,较为安全。

fgets(缓冲区,读入数据最大长度长度,标准输入流stdin/文件句柄):fgets()在接收数据时敲下的回车不会被丢弃,回车会被同样读取到缓冲区。如果缓冲区空间不够大,超出STRLEN-1(用来保存结束字符'\n'的1个字节)时,输出函数会分两次全部输出fgets()获取到的数据,第一次输出指定长度的数据,第二次输出超出stdin中超出的数据部分。成功,则返回第一个参数相同的指针。

fputs(缓冲区,标准输出流stdout):输出时不会添加换行符,同printf。

getchar():返回类型为int型,返回值为用户输入的ASCⅡ码,出错返回-1。

测试代码

#include<stdio.h>

#define STRLEN 10  

void main()

{  

     char str[STRLEN] = { 0 };

     while (gets_s(str,STRLEN)!=NULL||str[0]!='\n')  

         {   

                 printf(str);   

                 puts(str);  

        }

    printf("Done!");  

    while (fgets(str, STRLEN, stdin) != NULL || str[0] != '\n')  

       {   

             printf(str);  

            fputs(str, stdout);  

        }  

     return 0;

}

转载于:https://www.cnblogs.com/jinpao/p/6716533.html

你可能感兴趣的文章
浅谈JAVA集合框架
查看>>
halt和shutdown 的区别
查看>>
git常用操作
查看>>
京东SSO单点登陆实现分析
查看>>
render()方法是render_to_response
查看>>
u-boot启动第一阶段
查看>>
北京大学2019年数学分析考研试题
查看>>
MySQL批量SQL插入性能优化
查看>>
定义列属性:null,default,PK,auto_increment
查看>>
用户画像展示
查看>>
pyqt pyinstaller使用说明
查看>>
C#中StreamReader读取中文出现乱码
查看>>
引用堆中的对象
查看>>
用CSS开启硬件加速来提高网站性能(转)
查看>>
使用BufferedReader的时候出现的问题
查看>>
加快页面加载速度的方法
查看>>
Oozie协作框架
查看>>
linux安装图形界面
查看>>
Android广播发送失败
查看>>
博弈论之入门小结
查看>>