C语言基础(12)-输入和输出
1. int scanf(const char *format, ...)
说明:scanf用于通过控制台输入字符串。
注意:
(1).通过scanf()函数输入的字符串,系统会自动在其后面补一个0,scanf默认回车和空格都是代表输入完成,这样会导致无法输入一个完整的字符串。
(2).scanf()函数并不检查char数组的下标,用户输入多少scanf就会保存多少,假如用户输入的字符长度超过了定义的char数组的长度,则会发生溢出。scanf函数是不安全的。
示例:
#include <stdio.h>
#pragma warning(disable:4996) void main() { char a[] = {};
scanf("%s",a);
printf("%s\n",a);
system("pause"); }

2. char *gets(char *str)
说明:从标准输入中读取一行,并将其存储到由str指向的字符串.
注意:
(1).gets函数只认回车代表输入完毕,空格只是一个普通字符而已,因此可以输出空格。
(2).gets函数同样有缓冲区溢出的问题。使用gets和scanf都会面临缓冲区溢出的问题,因此两者都不安全。
3. char *fgets(char *str, int n, FILE *stream)
说明:从标准输入中读取一行,并将其存储到由str指向的字符串.
注意:
(1).fgets函数有三个参数。第一个参数是char的数组,第二个参数是标明这个数组的大小,第三个参数如果是通过键盘输入可以固定写为stdin.
(2).fgets函数是安全的,不存在缓冲区溢出的问题。
(3).fgets函数在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车键也作为字符串的一部分,因此使用fgets函数后在输出时,不需要添加\n。当输入长度超过了缓冲区长度时,多出的部分将会被截断。
#include <stdio.h>
#pragma warning(disable:4996) void main() { char a[] = {};
fgets(a,sizeof(a),stdin);
printf("%s",a);
system("pause"); }


4. int puts(const char *str)
说明:输出一个字符串。
注意:
(1).puts函数打印字符串,与printf不同,puts会在最后自动添加一个’\n’
(2).put函数不支持转义字符,比如%d,%s都不支持,puts函数只能简单输出一个字符串,而不能输出char,int,double等其它类型.
#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
puts(s);
system("pause"); }

#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
puts("%d%s",,s);
system("pause"); }

5. int fputs(const char *str, FILE *stream)
说明:输出一个字符串。
注意:
(1).第一个参数是char的数组,第二个参数如果只是用puts在屏幕输出的话可以固定写成stdout
(2).fputs不会自动输出一个\n
(3).fputs是puts的文件操作版本
#include <stdio.h>
#pragma warning(disable:4996) void main() { char s[] = "hello world";
fputs(s, stdout);
system("pause");
}

C语言基础(12)-输入和输出的更多相关文章
- Python基础篇--输入与输出
站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...
- C++语言基础(25)-C++格式化输出
一.使用控制符控制输出格式 #include <iostream> #include <iomanip>//不要忘记包含此头文件 using namespace std; in ...
- Java入门 - 语言基础 - 12.Number和Math类
原文地址:http://www.work100.net/training/java-number-math.html 更多教程:光束云 - 免费课程 Number和Math类 序号 文内章节 视频 1 ...
- D语言-变量、输入、输出、注释
Part 1:变量 D语言的变量有很多类型,这里只讨论几个基本类型 §1.1变量的定义方法 在D语言中,变量的定义方法是这样子的: [typename] [var1,var2,var3...] 其中, ...
- python语言学习5——输入和输出
输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. 注意点: 字符串用的是单引号 碰到逗号输出时就会输出一个空格 输入 python提供了一个input(),可以让用户输入一个字 ...
- 从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)
六,Print系列的函数输出 1:Println 打印换行.Print控制台打印,lnline 一行,打印数据后自动换一行显示.下面显示在控制台打印出不同的类型. 打印输出结果后,会自动换一行.打印结 ...
- C语言基础 (12) 文件的操作 FILE
课程回顾 结构体基本操作: 结构体类型的定义 // struct为关键字 Stu为自定义标识符 // struct Stu才是结构体类型 // 结构体成员不能在定义类型时赋值 struct Stu { ...
- Java语言基础(12)
1 构造方法重载 在一个类内部,编写多个构造方法,创建对象的时候,根据需求的不同,调用不同的构造方法创建对象,实现不同的初始化. 案例:Demo1 public class Demo1 { publi ...
- go语言基础之输入的使用
1.输入的使用 第一种写法:fmt.Scanf("%d", &a) 第二种写法:fmt.Scan(&a) 示例: package main //必须有一个main包 ...
随机推荐
- Exercise02_05
import java.util.Scanner; public class Rate { public static void main(String[] args){ Scanner input ...
- Scala实战高手****第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏
本课内容1.Map和Tuple在Spark源码中的鉴赏2.Map和Tuple代码操作实战 ------------------------------------------------------- ...
- python3中的range函数
奇怪的现象 在paython3中 print(range(10)) 得出的结果是 range(0,10) ,而不是[0,1,2,3,4,5,6,7,8,9] ,为什么呢? 官网原话: In many ...
- Visio插入竖直省略号
不去想省略号,想效果,插入文本框,输入点号,换行,三次就ok.
- 网络采集软件核心技术剖析系列(2)---如何使用C#语言获得任意站点博文的正文及标题
一 本系列随笔概览及产生的背景 本系列开篇受到大家的热烈欢迎,这对博主是莫大的鼓励,此为本系列第二篇,希望大家继续支持,为我继续写作提供动力. 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受 ...
- Automatic Diagnostic Repository
转载自 http://www.eygle.com/archives/2007/08/11g_auto_diag_repository.html#comments Oracle Database 11g ...
- http://blog.csdn.net/fbysss/article/details/8024748
http://blog.csdn.net/fbysss/article/details/8024748
- Hadoop之Sqoop详解
sqoop数据迁移1.简介 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具. 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS.HIVE.HBA ...
- angularJS中的表单验证(包括自定义验证)
表单验证是angularJS一项重要的功能,能保证我们的web应用不会被恶意或错误的输入破坏.Angular表单验证提供了很多表单验证指令,并且能将html5表单验证功能同他自己的验证指令结合起来使用 ...
- vue总结介绍
转自(https://zhuanlan.zhihu.com/p/23078117) 模板语法 Vue 提供了一堆数据绑定语法. {{ text }} 文本插值 <div v-html=" ...