/************************************************************************/
/* coder:huifeng00
/* 时间:2010-5-23
/* 功能:简单实现自己的printf()函数,识别%d,%s,%c
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
void myprintf(const char *format, ...)
{
va_list ap;
char c,nc;
va_start(ap, format);
while (c = *format++)
{
if (c == '%'&&(nc=*format)!='/0')
{
format++;
switch(nc)
{
case 'c': //%c
{
/*为了内存对齐,所以要写int*/
char ch = va_arg(ap, int);
putchar(ch);
break;
}
case 's': //%s
{
char *p = va_arg(ap, char *);
fputs(p, stdout);
break;
}
case 'd'://%d
{
int data = va_arg(ap,int);
char buf[16];
itoa(data,buf,10);
fputs(buf,stdout);
break;
}
default:
putchar('%');
putchar(nc);
}
}
else
{
putchar(c);
}
}
va_end(ap);
}
int main(void)
{
int i = 100;
char ch ='n';
char data[] = "nihao";
myprintf("%d/n%c/n%s/n", i,ch, data);
return 0;
}
主要实现了%s,%d,%c。
相关推荐
一文带你了解SOA接口测试
了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的
【嵌入式C语言】可变参数 va_start、va_arg、va_end、va_list、stdarg.h 库详解
可变参数详解 printf( )是我们在编程中避不开的函数,之前我们研究了printf( )的实现原理,初步了解了printf( )函数在库中是借用putchar( )来进行实现输出的,但是还有一个问题我们上一篇文章没有解决,那就是printf( )中的可变参数是怎么实现的呢,如何去使用可变参数完成我们自己的输出函数呢? 让我们再来看一眼printf( )的长相,在stdio.h文件中他是这样声明的 int printf(const char *format, ...) printf( )中分为两种参数,
彻底卸载Ubuntu双系统,并完美回收100G空间给D盘
本文记录了安全卸载Ubuntu双系统并回收磁盘空间的全过程。作者首先通过Windows命令行彻底清除Ubuntu启动项,避免GRUB引导报错;随后在磁盘管理中删除Linux分区,将100G未分配空间合并至相邻的D盘。针对C盘空间不足问题,作者采用Dism++清理系统文件,并将用户文档、聊天记录等迁移至扩容后的D盘。最终实现了引导纯净、空间合理分配的目标,特别强调分区扩展必须遵循"相邻原则",建议通过间接迁移而非直接扩容来优化系统盘空间管理。
printf实现
printf是c语言下非常常用的一个函数,几乎每个程序员在一开始第一个学的函数应该就是printf吧! 今天来实现一个printf函数,虽然printf是我们常用的函数,但实现起来其实还是蛮考基础的! 下面一步一步带大家实现: 一. 编写一个入口函数并导入标准io头文件 #include<stdin.h> int main(){ } 二. printf函数准备工作 前言...
雷电模拟器+Auto.js避坑指南:用桥接模式解决PC与模拟器连接超时问题
本文详细解析了雷电模拟器与Auto.js联调中的桥接模式应用,解决PC与模拟器连接超时问题。通过桥接模式配置、高频故障排查及多开环境下的高阶配置,提升开发效率与稳定性,特别适合需要稳定网络连接的Auto.js开发者。
matplotlib三维画图之观察博弈论混合策略下纳什均衡点
参考链接: 博弈论入门20讲之第16讲-猜谜游戏-散户如何赢庄家 游戏背景: 我的期望是: 你的期望是: 使用Python的matplotlib画图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) X = np.linspace(0, 1, 100) Y = np.linspace(0, 1,
printf函数的实现方法
printf函数的实现
IDEA集成selenium自动化测试(Java+Selenuim+testNG+Maven)
文章目录写在前面01 | 新建Maven项目02 | idea集成Selenium03 | 写在前面 因为软件测试的需求和博主比较经常使用Java,于是,想在Idea中集成selenuim,用Java编写测试代码,因此有了这篇文章来记录一下过程。 资源指路: java使用selenium实现模拟浏览器操作API大全 模拟登录 TestNG入门教程 感谢上面博客的大佬。 01 | 新建Maven项目 不使用骨架创建,直接点击左侧Maven,然后一路next即可。 02 | idea集成Sele
汇编语言综合试验5 - 用C语言实现一个简单的printf函数
本题是王爽老师《汇编语言(第4版)》的压轴题,具有一定难度。笔者基于自己编程中的踩坑经历,并结合大佬的解题思路,写成博客。这个试验设计得非常好,如果有心从头到尾理清逻辑,将会极大加深对C和汇编关系的理解。
【Docker】如何让docker容器正常使用nvidia显卡
描述了如何在docker容器中使用英伟达显卡的过程和问题解决方法。
DTW Barycenter Averaging(DBA)——平均序列求法
DBA该算法是用来求序列数据集SS的一致序列(平均序列)。由Franc-ois Petitjean提出的。目前,该方法求得的平均序列是最准确的。 假设一元组为S={s1,s2,⋯,sn}S={s1,s2,\cdots,sn},当SS中的元素为实数时,很容易求的SS的平均值: avg=s1+s2+⋯+snn(1) avg = \dfrac{s1 +s2+\cdots+sn}{n} \qquad\q
【C语言指南】printf()函数详解
printf 函数在输出格式 format 的控制下,将其参数进行格式化,并在标准输出设备(显示器、控制台等)上打印出来。printf函数是C语言最常用且功能强大的库函数,搞明白printf函数能在工作中做到事半功倍的效果
x2-DFD:A framework for explainable and explainable deepfake detection
该文章提出了X2-DFD框架,用于可解释和可扩展的深度伪造检测。通过评估大型多模态语言模型(MLLMs)在深度伪造检测中的内在能力,发现它们在不同伪造相关特征上的有效性各异。基于此,实施了针对性的微调策略,显著提高了MLLMs的解释能力,并整合了外部深度伪造检测器(EDDs),以结合MLLMs和传统检测器的互补优势,实现更好的检测和解释。
简单实现printf()函数功能
printf函数
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
C语言中可变参数函数的实现——printf
C语言中可变参数函数的实现(`printf()`的实现)
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
STM32单片机极简方法 使用宏定义 代替复杂的重定向printf()函数,实现串口打印。(HAL库例程)
对于 printf() 函数我们并不陌生,初学C语言使用的第一个函数,其作用是在终端打印显示格式化字符串。 但是如果我们使用的是单片机运行C语言代码,如果不经任何修改直接使用 printf() 函数,结果是什么现象都没有。要想使用这个函数,常规方法是重定向 printf() 函数,结合串口来打印到串口助手上位机。这里的重定向就非常复杂了,你需要懂 printf() 函数内部实现机制。。。。。(参...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
利用printf()实现简单动画,触界反弹的球
利用printf()实现简单动画。本程序实现的是一个运动过程中触界反弹的球,在程序演示的过程中,ESC键可以随时终止程序. 当然你可以利用system("cls");实现动画效果,这里采用GotoXy()函数,然后利用背景色的空格擦掉痕迹作图,来实现动画效果
怎样在TI stellaris lm3sxxx 程序中使用C语言printf()函数进行串口输出
串口输出 UART 输出重定向 stellaris lm3sxxx
模拟实现printf函数
模拟实现 printf()函数 如果要想解决这个问题 ,就要 知道一个知识点 ,可变参数列表 , 可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件中,它是标准库的一部分。这个头文件声明 个类型va_list 和三个宏va_start、va_arg和va_end。 转到定义处 查看一下这几个宏和类型 typedef char * va_li
printf的实现
研究printf的实现,首先来看看printf函数的函数体 int printf(const char *fmt, ...) { int i; char buf[256]; va_list arg = (va_list)((char*)(&fmt) + 4); i = vsprintf(buf, fmt, arg); write(buf
printf()函数详解
本文转载自:https://blog.youkuaiyun.com/qq_25544855/article/details/81146800 1. printf()简介 printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。 函数原型: int printf ( const char * format,...
print()、printf() 和 sprintf()三者之间的区别与联系
在 C 语言中,有三种常用的输出函数:print()、printf() 和 sprintf()。虽然它们都可以用来输出字符串,但是它们的使用方法和输出方式是有区别的。下面,我们将介绍这三个函数的区别和用法。
printf()函数的全面介绍及用法——简单易懂
printf()函数介绍及详细用法:三种格式控制字符(教你怎么输出)——格式字符、转义字符、普通字符;输出的示例;指定宽度输出;保留小数位数输出;printf()函数中的格式修饰符,以及printf()函数的返回值类型及内容。
printf()函数和scanf()函数
本文介绍了C语言中的两个基础库函数printf()和scanf()的基本用法。printf()用于格式化输出,支持多种占位符和格式控制;scanf()用于读取用户输入,需要注意变量地址传递和不同类型数据的读取方式。文章详细讲解了这两个函数的参数用法、占位符类型、格式控制选项,以及常见注意事项,如scanf()读取字符串时的长度限制问题。这些基础知识对于C语言初学者理解和掌握标准输入输出操作具有重要意义。
printf()函数以及scanf()函数
就是程序运行到这个语句时,会停下来,等待用户从键盘输入,用户输入数据,按下回车键后,scanf()函数就会处理用户的数据,将其存入变量。
7156



被折叠的 条评论
为什么被折叠?



