发布时间:2026/7/20 14:15:24
基于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处理字符数据时空白符也是字符

相关新闻

2026/7/21 8:24:55

HarmonyOS7 禁用单选项:用 enabled 做好不可选项

文章目录前言交互链路先理清数据和 UI 的对应关系关键实现细节完整代码可以继续扩展的方向前言 这组案例开始进入选择类和调节类组件,写业务页面时会经常遇到。这个案例围绕 Radio 禁用状态 展开,重点不是把属性背下来,而是弄清楚状态、组件…

2026/7/21 8:24:55

具身智能的TVA-VLA双引擎架构(7)

前沿技术探索:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN…

2026/7/21 8:24:55

华为OD机试高频题:文件目录大小问题的六种语言实现与深度解析

1. 项目概述与核心价值最近在帮几个准备华为OD机试的朋友做模拟练习,发现“文件目录大小”这道题出现的频率相当高,尤其是在2025年的B卷里,它稳稳地占着100分的分值。这道题本身并不算算法里最难的,但它是一个绝佳的“照妖镜”&am…

2026/7/21 8:24:55

C++宿舍管理系统项目实战:从类设计到文件操作完整指南

1. 项目概述与核心价值最近在整理硬盘时,翻出了一个大学时期和室友一起鼓捣的C宿舍管理系统项目。这个项目虽然现在看来代码有些“稚嫩”,但麻雀虽小五脏俱全,涵盖了从需求分析、数据结构设计、文件操作到简单的用户交互界面等C核心知识点。对…

2026/7/21 8:24:55

基于网络框架设计消息中间件核心

随着分布式系统架构的日益普及与复杂化,消息中间件已成为构建松耦合、高可靠、可扩展应用的核心基础设施。它如同系统的“中枢神经”,负责在不同服务、应用与组件之间高效、可靠地传递信息。而一个消息中间件的强大能力,其根基在于一个设计精…

2026/7/21 8:19:55

KVM环境下virtio-net网络性能优化策略

KVM环境下virtio-net网络性能优化策略 在KVM虚拟化环境中,网络性能是影响虚拟机整体运行效率的关键因素之一。virtio-net作为KVM默认提供的半虚拟化网络驱动,通过减少虚拟化开销来提升网络传输效率,但在实际应用中,其性能仍有进一…

2026/7/20 6:33:00

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/21 0:08:52

华为OD机试 新系统真题 【酒店服务记录分析】

酒店服务记录分析(C++/Go/C/Js/Java/Py)题解 华为OD机试 新系统真题 华为OD上机考试 新系统真题 7月19号 100分题型 华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录|机考题库 + 算法考点详解 题目内容 你是某连锁酒店的数据分析师,酒店每天都会用一串编…

2026/7/21 0:08:52

华为OD机试 新系统真题 【小明的顺风车】

小明的顺风车(C++/Go/C/Js/JAVA/Py)题解 华为OD机试新系统真题 华为OD上机考试新系统真题 7月19号 200分题型 华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录|机考题库 + 算法考点详解 题目内容 小明自驾回家,为节省旅途成本,决定在网上挂出顺风车服务…

2026/7/20 19:08:28

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…