热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

华清远见学习笔记Day3—输入输出专题

本专栏为个人在华清远见嵌入式linux学习期间的笔记,希望能与各位读者共同进步!文章目录前言一、字符输出函数和格式输出函数1.数据输出2.字符输出函数3

本专栏为个人在华清远见嵌入式linux学习期间的笔记,希望能与各位读者共同进步!



文章目录

  • 前言
  • 一、字符输出函数和格式输出函数
    • 1.数据输出
    • 2.字符输出函数
    • 3.格式输出函数
  • 二、字符输入函数和格式输入函数
    • 1.字符输入函数
    • 2.格式输入函数
  • 三、输入函数的垃圾处理及字符串的输入输出
    • 1.输入函数留下的“垃圾”
    • 2.字符串输入函数gets
    • 3.字符串输出函数




前言

输入输出专题:

对C语言中的输入和输出进行了专题讲解,通过本次课的学习学员会对输入和输出有个全面深入的掌握。




一、字符输出函数和格式输出函数


1.数据输出

C语言无I/O语句,I/O操作由函数实现
调用前必须调用头文件。

#include

2.字符输出函数

格式: putchar(c);

参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:正常,为显示的代码值;
例子

#include
main()
{ int c;char a;c=65; a='B';putchar(c); putchar('\n'); putchar(a);
}
运算结果为:
A
B

3.格式输出函数

格式:printf(“格式控制串”,输出表);

功能:按指定格式向显示器输出数据
输出表:要输出的数据
格式控制串:包含两种信息:
1.格式说明:%[修饰符]格式字符,用于指定输出格式
2.普通字符:原样输出

格式字符表
-格式字符
例子

int a=567;printf("%d",a); //567
int a=255;printf("%x",a); //ff
int a=65;printf("%o",a); //101
int a=567;printf("%u",a); //567
char a=65;printf("%c",a); //Aprintf(%s”,“ABC”); //ABC
float a=567.789;printf("%e",a); //5.677890e+02
float a=567.789;printf("%f",a); // 567.789000
float a=567.789;printf("%g",a); // 567.789
printf("%%"); //%

附加格式说明符
附加格式说明符
m.n例子

int a=1234;
float f=123.456;
char ch='a';
printf("%8d,%2d\n",a,a);
printf("%f,%8f,%8.1f,%.2f\n",f,f,f,f);
printf("%3c\n",ch);
结果为1234,1234
123.456001,123.456001, 123.5,123.46a

格式字符例子

static char a[]="Hello,world!";
printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
结果为
Hello,world!Hello,world!Hello
Hello
Hel

0、+例子

int a=1234;
float f=123.456;
printf("%08d\n",a);
printf("%010.2f\n",f);
printf("%0+8d\n",a);
printf("%0+10.2f\n",f);
结果为
00001234
0000123.46
+0001234
+000123.46

二、字符输入函数和格式输入函数


1.字符输入函数

格式: getchar()

功能:从键盘读一字符
返值:正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl d)

例子

#include
int main()
{ int c;printf("Enter a character:");c=getchar();printf("%c--%d->hex%x\n", c, c, c);
}
运行结果:
Enter a character:A
A--65->hex41

2.格式输入函数

格式: scanf(“格式控制串”,地址表)

功能:按指定格式从键盘读入数据,存入地址表指定
存储单元中,并按回车键结束
返值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符&

目前,scanf支持的格式字符很多,如下表:
格式输入函数
scanf函数支持的格式说明符可以带以下修饰符:
scanf函数修饰符
例1

scanf("%4d%2d%2d",&yy,&mm,&dd);
若输入19991015
则yy为1999, mm为10, dd为15

例 2

scanf("%2d%*3d%2d",&a,&b);若输入1234567则a为12,b为67

用“%c”格式符时,空格和转义字符作为有效字符输入
例子

scanf("%c%c%c",&c1,&c2,&c3);
若输入abc
则c1为a, c2为空格, c3为b

总结
输入数据时,遇以下情况认为该数据结束:
遇空格、TAB、或回车
遇非法输入
遇宽度结束

例子

ret=scanf("%d%c%f",&a,&b,&c);
若输入1234a123o.26
则a为1234, b为'a', c为123

三、输入函数的垃圾处理及字符串的输入输出


1.输入函数留下的“垃圾”

由于用户输入时会用回车确实,所以使用输入函数可能会留下垃圾
例子

int x;
char ch;
scanf("%d",&x);//输入后会按回车进行确认
scanf("%c",&ch);
printf("x=%d,ch=%d\n",x,ch);
运行后输入37,然后按回车键 没有第二次输入 程序直接打印结果
37
x=37,ch=10

后一个输入没有生效,是因为取到了回车的ASCII表值10,如下图
回车的ASCII
方法1:用getchar()清除

int x;char ch;scanf(%d”,&x);getchar();ch=getchar();printf(“x=%d, ch=%d\n”, x, ch);
运行后输入37 按回车 输入a
结果为
x=37, ch=97

方法2:用格式串中空格或“%*c”来“吃掉”

int x;
char ch;
scanf("%d",&x);
scanf(" %c",&ch);scanf("%*c%c",&ch);

2.字符串输入函数gets

格式: char * gets(char *s)

例子

功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加’\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。

int main()
{ char string[15];printf("Input a string:");gets(string);printf("%s\n", string);return 0;
}

3.字符串输出函数

格式:int puts(const char *s)

功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以’\0’结束
例子

#include
int main( )
{ char string[80] = "How are you";puts(string);return 0;
}
结果为
How are you

推荐阅读
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • 《2017年3月全国计算机等级考试二级C语言上机题库完全版》由会员分享,可在线阅读,更多相关《2017年3月全国计算机等级考试二级C语言上机题库完全版( ... [详细]
  • C语言自带的快排和二分查找
    Author🚹:CofCaiEmail✉️:cai.dongjunnexuslink.cnQQ😙:1664866311personalPage&#x ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼*madebyebhrz*#include#include#include#include#include#include#include ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
author-avatar
建霖怡旭家其
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有