基于Linux的C语言编程Day3
前提1输入输出是以计算机主机为主体而言的。2C语言本身不提供输入输出语句输入和输出操作是由C函数库中的函数来实现的。一. 字符数据的输入输出 putchar getchar1 . 用Linux查看putchar手册 命令为man putchar / getchar 打开后会出现以下内容PUTS(3) Linux Programmers Manual PUTS(3)NAME//函数名及功能简短说明fputc, fputs, putc, putchar, puts - output of characters and stringsSYNOPSIS// 函数所需要的头文件以及函数原型#include stdio.hint fputc(int c, FILE *stream);int fputs(const char *s, FILE *stream);int putc(int c, FILE *stream);int putchar(int c);int puts(const char *s);DESCRIPTION//描述函数使用细节fputc() writes the character c, cast to an unsigned char, to stream.fputs() writes the string s to stream, without its terminating nullbyte (\0).putc() is equivalent to fputc() except that it may be implemented as amacro which evaluates stream more than once.putchar(c) is equivalent to putc(c, stdout).puts() writes the string s and a trailing newline to stdout.Calls to the functions described here can be mixed with each other andwith calls to other output functions from the stdio library for thesame output stream.For nonlocking counterparts, see unlocked_stdio(3).RETURN VALUE//返回值fputc(), putc() and putchar() return the character written as anunsigned char cast to an int or EOF on error.puts() and fputs() return a nonnegative number on success, or EOF onerror.(1) putchar函数int putchar ( int c )功能是向终端输出一个字符其形式一般为putchar (c)参数c表示要输出的字符返回值 : 返回要输出的字符ASCII编码用法 #includestdio.h int main() { char a A; putchar(a); return 0; }运行结果从图中可以看出输出结果很紧凑没有换行。要想换行代码就要改为#includestdio.hint main(){char a A;putchar(a);putchar(\n); // 换行return 0;}2getchar函数int getchar ( void ) //getchar 只能接收一个字符功能从终端输入一个字符参数void 表示不需要传参数返回值 返回读到的字符 ASCII编码值 用法 #includestdio.h int main() { char a; a getchar(); putchar (a); putchat(\n); return 0; }结果 二 格式输入与输出 printf scanf1 .printf 函数int printf ( const char *format , ... ); 一般格式为 printf ( 格式控制 输出列表 )功能 向终端输出若干个任意类型的数据format : 参数 格式化字符串... 可变参数返回值 成功时返回打印了的字符1普通字符 -------------------------原样输出例 printf (hello ,world );2占位字符-------------------------把对应数据转换为指定的占位符i整型%d----------------------------------------将数据转换为有符号的十进制%md--------------------------------------m为指定的输出字段的宽度m实际宽度以实际宽度输出m实际宽度数据默认右对齐也可以右对齐需在m前加 - 左边补空格补0需在m前加 0%#d--------------------------------------表示输出数据对应的前缀字符%ld---------------------------------------输出长整型数据%Ld--------------------------------------输出为long long型的数据%*d--------------------------------------表示跳过它指定的列数例 scanf(%2d%*3d%2d,a,b); 输入12 345 67系统会将12赋值给a%*3d表示读入三位整数但不赋值任何变量再将67赋值给b也就是说345会被跳过%u---------------------------------------将数据转换为无符号的十进制%o---------------------------------------将数据转换为八进制%x---------------------------------------将数据转换为十六进制%X--------------------------------------将数据转换为十六进制输出结果中的字母都转换为大写ii浮点型%f---------------------------------------将数据转换为十进制形式的小数默认保留六位小数%.nf(n为整数)------------------------表示保留前n位小数%m.nf----------------------------------指定输出的数据共占m列保留n位小数%e--------------------------------------将数据转换为科学计数法默认保留六位小数%g--------------------------------------将数据以一种更简洁的方式输出消除无意义的0iii字符型%c--------------------------------------将数据转换为对应字符形式%s--------------------------------------将数据输出为一串字符%.ns-----------------------------------将数据保留结果前n位注 占位符和输出参数要一一对应2 .scanf 函数int scanf ( const char *format , ... ) scanf ( 格式控制 地址列表 ) scanf(%d%d,a,b);format : 参数格式化字符串... : 可变参数 要地址列表返回值 表示成功匹配到数据项i整型%d----------------------------------------将数据转换为有符号的十进制%md--------------------------------------m为指定的输入字段的宽度m实际宽度以实际宽度输出m实际宽度数据默认右对齐也可以右对齐需在m前加 - 左边补空格补0需在m前加 0%#d--------------------------------------表示输入数据对应的前缀字符%ld---------------------------------------输入长整型数据%Ld--------------------------------------输入为long long型的数据%u---------------------------------------输入无符号的十进制%o---------------------------------------输入为八进制%x---------------------------------------输入为十六进制%X--------------------------------------输入十六进制输入结果中的字母都转换为大写ii浮点型%f---------------------------------------输入十进制形式的小数默认保留六位小数%.nf(n为整数)------------------------表示保留前n位小数%m.nf----------------------------------指定输入的数据共占m列保留n位小数%e--------------------------------------输入科学计数法默认保留六位小数%g--------------------------------------简洁的方式输入消除无意义的0iii字符型%c--------------------------------------输入对应字符形式%s--------------------------------------将数据输入为一串字符%.ns-----------------------------------将数据保留结果前n位注 1占位符和地址参数要一一对应2scanf的格式控制字符可以输入普通字符但是不建议3输入多个数据时默认用空格 Enter Tab作为分隔符4计算机中0号地址一般不能直接访问会出现segmentation fault (core dumped) 段错误5scanf匹配结束条件遇空白符 遇非法字符 达到指定宽度如果设置宽度了的话6scanf输入时占位符与类型要严格匹配7scanf处理字符数据时空白符也是字符

相关新闻

深入解析Ren‘Py二进制逆向工程:3种核心应用场景与技术实现原理

深入解析Ren‘Py二进制逆向工程:3种核心应用场景与技术实现原理

深入解析RenPy二进制逆向工程:3种核心应用场景与技术实现原理 【免费下载链接】unrpyc A renpy script decompiler 项目地址: https://gitcode.com/gh_mirrors/un/unrpyc RenPy脚本反编译工具unrpyc作为专业的二进制逆向工程解决方案,为游戏开发者…

2026/11/2 6:23:15 阅读更多 →
7个实用技巧:如何高效参与Blender开源社区贡献

7个实用技巧:如何高效参与Blender开源社区贡献

7个实用技巧:如何高效参与Blender开源社区贡献 【免费下载链接】awesome-blender 🪐 A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-blend…

2026/11/3 5:09:41 阅读更多 →
SpringBoot3+Sa-Token实现双Token认证实战指南

SpringBoot3+Sa-Token实现双Token认证实战指南

1. 项目背景与核心需求在当今的Web应用开发中,身份认证和权限控制是每个系统都无法绕开的核心模块。传统的Session-Cookie方案在分布式环境下存在诸多局限,而单纯的JWT方案又难以解决无感刷新和主动注销等问题。这正是双Token机制(Access Tok…

2026/11/4 19:02:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/6 15:21:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/6 9:29:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/6 22:01:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/6 22:01:11 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/6 8:08:42 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/6 22:01:09 阅读更多 →

日新闻

周新闻

月新闻