编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

C 语言头文件 stdio.h 中的输入输出函数详解

gowuye 2024-04-25 04:46 9 浏览 0 评论

stdio.h 几乎可以说是每一个 C 语言源代码中都要引用的一个文件,其中定义了许多常用的函数,如输入输出函数、文件相关的函数等。

下面介绍 stdio.h 中定义的基本输入输出函数。

1. 格式化输入输出

第一个出场的是用得最多的一对输入输出函数。

咱就来看一下这两个函数在 stdio.h 文件中是如何定义的?

// 输入函数
int scanf(const char* __format, ...);
// 输出函数
int printf(const char* __format, ...);

这两个函数定义的参数都有两个,第一个是字符指针常量,其实也就是字符串,是两个函数都必须要具备的参数。

后面的三个点,名为可变参数。不限制参数个数(0个及以上)、参数类型。

#include<stdio.h>
int main()
{
  int a;
  scanf("%d", &a);
  return 0;
}

在 scanf 函数的字符串里,可以是格式字符、普通字符、空白字符,而转义字符在其中会失去它的转义功能,成为一个普通字符。

当字符串中每有一个格式符号,相应后面的可变参数列表中就要有一个变量,一一对应。如果不附上变量,就会产生报错。

变量如果是基本数据类型的,如整型、浮点型、字符型的,则要在变量前面加上一个寻址运算符(&),才能将数据传递给相应的变量。

同时需要注意的是,scanf 函数的可变参数列表只能传入变量,而不是能是常量、表达式等。

#include<stdio.h>
int main()
{
  int a=3;
  printf("输出数字:%d\n", a);
  return 0;
}

printf 函数中,字符串中可以是任意字符,另外转义符号(如 \n、\t 等)不会被转换为普通字符。

和 scanf 函数不同的是,该函数的可变参数列表没有强制要求有多少个格式符号,就要填写变量,编译是不会发生错误,也会正常运行。

不过不建议这么做,因为没有意义,其次运行后编译器会随机安排一个垃圾值,获得预期外的结果。

且 printf 函数的可变参数列既可以是变量,也可以是常数、表达式。

2. 单字符输入输出

第二组输入输出函数,getchar 和 putchar。

// getchar
int getchar(void);
// putchat
int putchar(int char);

getchar 函数是没有参数的。每一次只能接受一个字符,即是输入一连串的字符,也只会接收第一个字符,而且字符必须还是 ASCII 码表上的字符。如果输入的是一个汉字,那么是不会被接收的。

putchar 函数是有参数的,传入的参数只能是整数类型或者字符类型。其中整数只有在 0-255 之间才能输出字符,其他的是无法在屏幕上显示结果。

#include<stdio.h>
int main()
{
  char c = getchar();
  putchar(c);
  return 0;
}

输入输出:

3. 字符串输入输出

顾名思义,这一组函数用于字符串的输入和输出。

// gets
char* gets(char *);
// puts
int puts(const char *);

gets 函数有一个参数,可以是字符指针变量或者字符数组变量。

puts 函数也有一个参数,可以是字符指针变量、字符数组,也可以是字符指针常量。

当传给 gets 函数是一个字符指针的时候,需要对其进行初始化。

#include<stdio.h>
int main()
{
  char str[10]="\0";
  char *string = str;
  gets(string);
  puts(string);
  return 0;
}

输入输出:

但需要注意的是,输入的字符不能大于定义的数组长度,否则就会造成内存溢出,产生异常。

4. 附录

格式字符:

转义字符:

总结

关于 C 语言常用的输入输出函数就介绍到这结束了。如果本篇文章对您有所帮助,点个赞支持一下。

如有发现文中有错误或者不恰当的地方,欢迎在评论区留言讨论。

相关推荐

R语言数据挖掘实践——支持向量机的常用函数
R语言数据挖掘实践——支持向量机的常用函数

e1071包是R语言中用于支持向量机建模与分析的软件包,其主要用于支持向量机的模型构建,提供核心函数svm()来建立支持向量机的基础模型,并且可辅助使用pred...

2024-05-18 12:15 gowuye

R数据分析:如何做聚类分析,实操解析
R数据分析:如何做聚类分析,实操解析

Clusteringisabroadsetoftechniquesforfindingsubgroupsofobservationswi...

2024-05-18 12:14 gowuye

用R语言做数据分析——马赛克图
用R语言做数据分析——马赛克图

到目前为止,我们已经学习了许多可视化定量或连续型变量间关系的方法。但如果变量是类别型的呢?若只观察单个类别型变量,可以使用柱状图或者饼图;若存在两个类别型变量,...

2024-05-18 12:14 gowuye

用R语言做数据分析——方差分析基本概论
用R语言做数据分析——方差分析基本概论

在实际工作中,影响一件事的因素是很多的,我们总是希望通过各种试验来观察各种因素对试验结果的影响。例如,不同的生产厂家、不同的原材料、不同的操作规程,以及不同的技...

2024-05-18 12:14 gowuye

R语言数据分析实战:数据清洗与可视化
R语言数据分析实战:数据清洗与可视化

《R语言数据分析实战:数据清洗与可视化》是一本深入浅出的实践指南,专为对数据分析感兴趣的读者精心编撰。本书旨在帮助读者掌握R语言这一强大的统计分析工具,通过实例...

2024-05-18 12:13 gowuye

用R语言做数据分析——双因素方差分析
用R语言做数据分析——双因素方差分析

在双因素方差分析中,受试者被分配到两因子的交叉类别组中。以基础安装中的Tooth-Growth数据集为例,随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素...

2024-05-18 12:13 gowuye

用R语言做数据分析——独立两样本和K样本检验
用R语言做数据分析——独立两样本和K样本检验

coin包简介对于独立性问题,coin包提供了一个进行置换检验的一般性框架,通过这个包,我们可以回答如下问题:响应值与组的分配独立吗?两个数值变量独立吗?两个类...

2024-05-18 12:13 gowuye

用R语言做数据分析——用回归做方差分析
用R语言做数据分析——用回归做方差分析

之前提到方差分析和回归都是广义线性模型的特例,之前文章的所有设计都可以用lm()函数来分析。为了更好地理解输出结果,需要弄明白在拟合模型时,R语言是如何处理类别...

2024-05-18 12:13 gowuye

数据分析R语言——数据结构
数据分析R语言——数据结构

数据分析R语言——数据结构数组数组(array)与矩阵类似,但是维度可以大于2.数组通过array()函数创建。形式如;myarray<-array(v...

2024-05-18 12:13 gowuye

R语言数据挖掘实践——关联分析的常用函数
R语言数据挖掘实践——关联分析的常用函数

arules和arulesViz是R语言中两个专用于关联分析的软件包。其中arules用于关联规则的数字化生成,提供Apriori和Eclat这两种快速挖掘频繁...

2024-05-18 12:12 gowuye

R语言数据挖掘实践——判别分析的常用函数
R语言数据挖掘实践——判别分析的常用函数

判别算法在R语言中实现主要涉及4个软件包中的相关函数,它们依次为MASS、klaR、class和kknn。其中MASS包含有大量实用而先进的统计计数函数及适用数...

2024-05-18 12:12 gowuye

用R语言读取Excel、PDF和JSON文件,终于有人讲明白了
用R语言读取Excel、PDF和JSON文件,终于有人讲明白了

导读:本文将讨论Excel、PDF等文件的读取,以及相应函数的参数设置。作者:刘健邬书豪如需转载请联系华章科技下图总结了主要程序包,希望读者在日常练习和工作中...

2024-05-18 12:12 gowuye

R语言数据挖掘实践——聚类分析的常用函数
R语言数据挖掘实践——聚类分析的常用函数

使用R语言可以轻松实现聚类分析,stats、cluster、fpc和mclust是常用的四个聚类分析软件包。stats主要包含一些基本的统计函数,如用于统计计算...

2024-05-18 12:12 gowuye

用R语言做数据分析——时间序列分类
用R语言做数据分析——时间序列分类

时间序列分类是根据已标注的时间序列建立一个分类模型,然后使用分类模型预测未标记时间序列的类别。从时间序列中抽取出新特征肯呢个有助于提高分类模型的性能。特征提取技...

2024-05-18 12:11 gowuye

一文看懂用R语言读取Excel、PDF和JSON文件(附代码)
一文看懂用R语言读取Excel、PDF和JSON文件(附代码)

导读:本文将讨论Excel、PDF等文件的读取,以及相应函数的参数设置。作者:刘健邬书豪如需转载请联系华章科技下图总结了主要程序包,希望读者在日常练习和工作中...

2024-05-18 12:11 gowuye

取消回复欢迎 发表评论: