C语言学习笔记20260713-格式化输入输出家族汇总
📅 2026/7/13 20:50:09
👁️ 次浏览
C语言学习笔记20260713-格式化输入输出家族汇总核心概念这组函数本质相同区别仅在于数据源Source和目的地Destination不同。头文件stdio.h核心对比总览函数族函数名数据来源 (Input)数据去向 (Output)典型应用场景标准 I/Oscanf键盘 (stdin)内存变量用户交互输入printf内存变量屏幕 (stdout)打印结果、日志文件 I/Ofscanf文件指针 (FILE*)内存变量读取配置文件、解析文本数据fprintf内存变量文件指针 (FILE*)写入日志文件、保存数据字符串 I/Osscanf字符串 (char*)内存变量解析字符串中的特定数据如提取 IPsprintf内存变量字符串 (char*)拼接字符串、数字转字符串1. 标准输入输出人机交互这是最基础的函数默认绑定到控制台黑窗口。scanf等待用户在键盘敲击并回车将数据读入变量。printf将变量的内容显示在屏幕上。代码示例#includestdio.hintmain(){intage;// printf: 提示用户输入printf(请输入你的年龄: );// scanf: 从键盘读取整数存入 age// 注意这里必须加 取地址符if(scanf(%d,age)1){// printf: 格式化输出结果printf(你今年 %d 岁了。\n,age);}else{printf(输入无效\n);}return0;}2. 文件流操作持久化存储这两个函数比标准 I/O 多了一个参数FILE *stream用于指定操作哪个文件。fscanf从文件中按格式读取数据。fprintf按格式将数据写入文件。代码示例#includestdio.hintmain(){FILE*fpfopen(data.txt,w);if(!fp)return1;charname[50]Alice;intscore98;// fprintf: 将数据格式化写入文件// 类似于 printf但第一个参数是文件指针fprintf(fp,Name: %s, Score: %d\n,name,score);// 重置文件指针到开头以便读取rewind(fp);charread_name[50];intread_score;// fscanf: 从文件读取格式化数据// 类似于 scanf但第一个参数是文件指针if(fscanf(fp,Name: %s, Score: %d,read_name,read_score)2){printf(读取成功 - 姓名: %s, 分数: %d\n,read_name,read_score);}fclose(fp);return0;}3. 字符串流操作内存中的转换这两个函数不依赖外部设备或文件直接在内存中的字符数组字符串进行操作。sscanf(String Scan)从一个已存在的字符串中提取数据。sprintf(String Print)将各种类型的数据拼接到一个字符串中。场景 A使用sscanf解析复杂字符串假设你有一个字符串2023-10-05想把它拆分成年、月、日。#includestdio.hintmain(){constchar*date_str2023-10-05;intyear,month,day;// sscanf: 从 date_str 中按 - 分割提取整数// 返回值是成功匹配并赋值的变量个数intcountsscanf(date_str,%d-%d-%d,year,month,day);if(count3){printf(解析成功: %d 年 %d 月 %d 日\n,year,month,day);}return0;}场景 B使用sprintf拼接/转换字符串假设你想把多个变量拼成一句话或者把数字变成字符串。#includestdio.hintmain(){charbuffer[100];// 目标缓冲区必须足够大intid1001;doubleprice99.5;// sprintf: 将数据格式化写入 buffer 字符串// 注意如果数据太长超过 buffer 大小会发生溢出危险sprintf(buffer,ID: %d, Price: %.2f USD,id,price);printf(生成的字符串: %s\n,buffer);// 应用数字转字符串charnum_str[20];sprintf(num_str,%d,12345);printf(数字转字符串: %s\n,num_str);return0;}⚠️ 安全提示与最佳实践sprintf的隐患sprintf不检查目标缓冲区的大小容易导致缓冲区溢出。推荐替代方案使用snprintf(buffer, size, ...)它可以限制写入的最大长度更加安全。// 安全写法限制最多写入 sizeof(buffer)-1 个字符snprintf(buffer,sizeof(buffer),ID: %d,id);scanf的隐患读取字符串时如果不限制长度如%s用户输入过长也会导致溢出。推荐写法scanf(%19s, str)假设str大小为 20。返回值检查所有的scanf系列函数都会返回成功匹配并赋值的项数。务必检查返回值以确保数据解析正确。总结C 语言的格式化输入输出家族提供了灵活的数据处理能力标准 I/O用于人机交互文件 I/O用于数据持久化字符串 I/O用于内存中的数据转换和解析掌握这些函数的区别和使用场景能够让你在处理各种数据输入输出任务时更加得心应手。记住安全第一始终检查返回值并使用安全的替代函数如snprintf。
模型量化对比:AWQ vs GPTQ vs GGUF在Mistral-7B-v0.3上的性能差异终极指南 【免费下载链接】Mistral-7B-v0.3_rai_1.7.1_npu_16K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Mistral-7B-v0.3_rai_1.7.1_npu_16K
在当今大语言模型部署的实战中&#x…
📅 2026/7/13 20:49:09
一文读懂Mistral-7B-v0.3_rai_1.7.1_npu_4K:模型架构、优势与应用场景全攻略 【免费下载链接】Mistral-7B-v0.3_rai_1.7.1_npu_4K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Mistral-7B-v0.3_rai_1.7.1_npu_4K
Mistral-7B-v0.3_rai_1.7.1_npu_4K是一…
📅 2026/7/13 20:49:09
超越原版性能!GLM-5.1-NVFP4模型GSM8K基准测试95.68%准确率实战指南 【免费下载链接】GLM-5.1-NVFP4 项目地址: https://ai.gitcode.com/hf_mirrors/amd/GLM-5.1-NVFP4
GLM-5.1-NVFP4是基于GLM-5.1模型优化的AMD量化版本,通过NVFP4量化技术实现了…
📅 2026/7/13 20:49:09
你肯定见过那种看起来高级、摸起来温润的地板,但价格却比实木便宜一大截。这就是现在很火的 _geo板面 。很多人觉得它就是个噱头,或者担心它不耐用。我当初装修时也纠结过,跑遍了建材市场,问了好几个师傅,最后才摸清门道。今天不整那些虚的,直接上干货,教你怎么挑,怎么…
📅 2026/7/13 21:44:39
本章摘要
核心目标:学会用 while 循环让程序"看着条件干活",直到条件不成立才停下核心知识点:while 语法 / 条件驱动循环 / 死循环 while True / break 与 continue 在 while 中的用法 / 循环嵌套实操产出:能独立写出猜…
📅 2026/7/13 21:44:23
title: "金融AI的下一个战场:ESG研究、量化回测与跨境业务"description: "分享3个前沿金融AI场景的开发思路——ESG评分体系、量化策略回测引擎、跨境业务智能方案"tags: ["金融AI", "ESG", "量化投资", "跨…
📅 2026/7/13 21:44:23
Efficient Video Sampling, EVS这篇文章发行较早,在2025.10动机:从图像到视频,视频是连续的帧,在连续帧之间存在大量的空间冗余,想通过在连续帧之间保持不变的空间区域,从而减少冗余方法:将每一…
📅 2026/7/13 21:44:23
灰度发布(也叫金丝雀发布)是一种能实现版本平滑过渡的软件发布方式,核心是通过逐步扩大新版本的用户覆盖范围,大幅降低全量上线的风险,是当前互联网行业主流的发布保障手段。
一、核心基础定义
灰度发布的核心逻辑是…
📅 2026/7/13 21:44:23
如何优化Llama-3.1-8B_rai_1.7.1_npu_4K在AMD NPU上的推理性能:完整指南 🚀 【免费下载链接】Llama-3.1-8B_rai_1.7.1_npu_4K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Llama-3.1-8B_rai_1.7.1_npu_4K
想要在AMD NPU上获得Llama-3.1-8B…
📅 2026/7/13 21:44:23
做技术的人都知道,环境配置是最让人头秃的环节。特别是当你面对一个相对小众或者刚起步的项目时,文档可能不全,社区可能冷清。这时候,找到靠谱的来源就显得尤为重要。今天咱们不聊虚的,就聊聊怎么稳妥地完成 openclaw安装官方 流程,顺便分享几个我踩过的坑,希望能帮你省…
📅 2026/7/13 0:01:22
1. 项目概述:当火焰特效成为帧率杀手在UE5项目里,尤其是那些追求电影级视觉的开放世界或者大场景战斗游戏,一个熊熊燃烧的篝火、一次震撼的爆炸,往往是点燃玩家情绪的关键。Niagara作为虚幻引擎5中取代了老旧的Cascade的下一代粒子…
📅 2026/7/13 0:01:52
1. 项目概述与核心价值 最近在对接抖音小游戏平台时,侧边栏复访功能成了一个绕不开的“必答题”。很多开发者朋友,包括我自己一开始,都对这个功能有点摸不着头脑:它到底是什么?为什么平台这么重视?不接入行…
📅 2026/7/13 0:01:52
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/13 5:30:27
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/13 6:21:22
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/13 7:10:30
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/13 3:29:47
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/13 19:47:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/13 9:07:16