• scanf("%s", str) 不能读取空白字符,遇到第一个空白字符就停止读取。

  • gets(str) 读取整行输入,直至遇到换行符,丢弃换行符储存其余字符,并在末尾添加 \0。与 puts(str)配合使用,puts()用于显示字符串,并在末尾添加换行符。

因为 gets(str) 函数仅有一个参数,因此无法检测是否会溢出,因此出现了 fgets() 函数。

  • fgets(str, n, stdin) 从键盘输入最多 n-1 个字符至 str 数组中。此函数还需注意:

    1. 第一个参数为目标地址,第二个参数为可读入的最大字符数目,如果为 n,则最大读入 n-1 个字符,或者读到换行符停止。
    2. 第三个参数为文件指针,此函数同样也可用于文件I/O,只需使第三个参数为相应的文件指针,此处从键盘读取,故使用标准输入 stdin。
    3. fgets() 读到换行符,则将其一同存储,不同于 gets()函数。
    4. fgets()fputs() 函数配对使用,因为 fgets() 读到换行符不丢弃,因此 fputs() 输出时不在末尾添加换行符。因此,fgets()fputs() 配合可以理解为读到什么,就存什么;存了什么,就显示什么
    5. 如果此函数读取发生错误或读至文件末尾,会返回 NULL。
  • puts(str) 显示 str 数组中的字符,直至遇到空字符停止输出,并在末尾添加一个换行符。

  • fputs(str, stdout) 显示 str 中的字符。其第二个参数是文件指针,同样也可以使用具体的文件指针将字符串写入文件中。


配对使用:

while(gets(str))
puts(str); 或者 while(fgets(str, LEN, stdin))
fputs(str, stdout);

C语言字符串输入输出函数(gets()函数、puts()函数、fgets()函数、fputs()函数)的更多相关文章

  1. C语言 · 字符串输入输出函数

    算法提高 3-2字符串输入输出函数   时间限制:1.0s   内存限制:512.0MB      描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数 ...

  2. C字符串输入输出函数

    下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(pri ...

  3. Java实现 蓝桥杯VIP 算法提高 3-2字符串输入输出函数

    算法提高 3-2字符串输入输出函数 时间限制:1.0s 内存限制:512.0MB 描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数和一个字符串后,将 ...

  4. C语言学习<输入输出函数,函数的调用>

    #include <stdio.h> /* 输入输出函数的学习 函数的调用 2017.05.25 soulsjie */ //输入连个数字求最大值 void main(){ int Max ...

  5. c语言的输入输出函数

    参考文章: http://blog.sina.com.cn/s/blog_784f40b80100psg9.html C语言输入输出函数分为两类: 1.格式化输入输出函数 2.非格式化输入输出 --- ...

  6. C语言中输入输出函数

    1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...

  7. C语言格式化输入输出函数

    一:格式输出函数printf() 1.调用形式一般为:printf("格式化控制字符串",输出表列): 2.格式化控制字符串用于指定输出格式,它有三种形式: 1.格式说明符:规定了 ...

  8. C++中的字符串输入输出函数详解

    常见的输入问题: 1.直接用cin输入(当然可以使用cout直接输出): 1)string s; cin >> s; //只接收回车键和空格前面所输入的字符!!!!! 一旦输入空格,cin ...

  9. fgets和fputs函数

    1 函数输入 下面两个函数提供每次输入一行的功能. #include <stdio.h> char *fgets( char *restrict buf, int n, FILE *res ...

随机推荐

  1. 阐述JDBC操作数据库的步骤

    1. 加载驱动. Class.forName("oracle.jdbc.driver.OracleDriver"); (注意:加载驱动在JDBC 4.0中是可以省略的,自动从类路径 ...

  2. 学习鸟哥linux私房菜--安装中文输入法fcitx

    首先需要卸载前面安装的scim,查阅命令,参考网址如下 http://www.cnblogs.com/propheteia/archive/2012/06/26/2563383.html 链接中博主采 ...

  3. gin框架中全局跨域请求处理设置

    跨域访问的问题 OPTIONS请求 全局跨域访问中间件 // 跨域访问:cross origin resource share func Cors() gin.HandlerFunc { return ...

  4. 集合框架-HashSet存储自定义对象

    1 package cn.itcast.p4.hashset.test; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 6 ...

  5. Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息

    Kubernetes在创建Pod时,会为Pod和容器设置一些额外的信息,比如Pod名称.Pod IP.Node IP.Label.Annotation.资源限制等,我们经常会在应用程序中使用到这些数据 ...

  6. python列表删除和排序

    1.del message[0]---知道位置不知道值 2.message.remove('a')----知道值不知道位置 3.message.sort()--正向永久排序 4.message.sor ...

  7. react之每日一更(实现canvas拖拽,增、删、改拖拽模块大小功能)

    效果图: import React, { Component } from 'react'; import scaleImage from './images/scale.png'; import c ...

  8. Android生成xml

    XmlSerializer     //使用XmlSerializer来序列化xml文件     public static boolean backupSms_android(Context con ...

  9. php导出excel xml word

    转载请注明来源:https://www.cnblogs.com/hookjc/ Excel: <?php header("Content-Type: application/vnd.m ...

  10. Android API在线网站

    http://android-doc.com/reference/packages.html