我的va_start和va_end学习

2023-11-11

va_start和va_end定义

1.va_start和va_end是两个宏
2.在c语言中,当我们无法列出传递函数的所有形参类型和数目时,可以用省略号指定参数表

相关知识

1.va_list ap;//是定义一个字符指针ap
2.va_start(ap,msg);//意思是让ap指向第一个形参列表中的第一个形参
3.vprintf(msg,ap);//C 库函数 int vprintf(const char *format, va_list arg) 使用参数列表发送格式化输出到标准输出 stdout
4.va_end(ap); //释放ap指针
代码示例

#include <iostream>
using namespace std;
#include <stdarg.h>
#include <string.h>

string print(char* a,...)
{
    va_list ap;   //定义一个指针
    va_start(ap,a); //ap指向形参列表的第一个形参
    vprintf(a,ap); //获取参数(vprintf使用参数列表发送格式化输出到标准输出 stdout);
    va_end(ap); //释放指针ap
    
    static char ptr[128] = {0};
    memset(ptr, 0, sizeof(ptr));
	fgets(ptr, sizeof(ptr), stdin);  //从标准输入获取参数到ptr。
     
    if(strlen(ptr) > 0) {
		if('\n' == ptr[strlen(ptr) - 1]) {
			ptr[strlen(ptr) - 1] = '\0';
		}
	}
	return ptr;
}
int main()
{    
    string sptr = print("\nPlease input : ");
    cout << sptr <<endl;
    return 0;
}

输出结果
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的va_start和va_end学习 的相关文章

  • 创建Vue3.0工程和常用 Composition API

    一 创建Vue3 0工程 1 使用 vue cli 创建 官方文档 https cli vuejs org zh guide creating a project html vue create 查看 vue cli版本 确保 vue cl
  • windows下apache开启FastCGI

    1 在此链接下载一个合适的mod fcgid 文件 64位下载第一个 32位第二个 http www apachelounge com download 2 将解压后将文件中的 mod fcgid so 复制到apache的modules目
  • 线段树Segment tree(1):单点修改,区间查询

    问题描述 给定数列a 1 a 2 a N 依次进行Q次操作 操作有两类 1 i x 给定i x 将a i 加上x 2 l r 给定i x 求 i l r
  • IDEA中Translation插件无法使用怎么办?

    昨天一个小偷 来我家偷钱 我们一起找了一晚上 问题 谷歌翻译退出中国了 导致我的 IDEA 翻译插件 Translation 也不能用了 会出现这样的错误 更新 TKK 失败 请检查网络连接 解决办法 使用百度翻译 很多翻译都收费 百度翻译
  • Ubuntu操作遇到的报错解决方法汇总(持续更新)

    1 在anaconda中创建了虚拟环境并安装了pytorch 但是编译过程中仍然报没有torch的错误 CMake Error at crawler crane crane tutorials CMakeLists txt 23 find
  • springboot常用注解详解

    在springboot中 经常会用到一些注解 它们各自代表着什么呢 在这个属于我们的节日里 快来了解一下吧 1 SpringBootApplication 一般不会主动去使用它 但是要知道它是一个组合注解 Configuration Ena
  • Uniapp零基础开发学习笔记(9) -媒体组件音视频摄像头等的练习使用

    Uniapp零基础开发学习笔记 9 媒体组件音视频摄像头等的练习使用 基础组件部分 最后就只剩余媒体组件以及地图 和画布Canvas 以及浏览器组件web view 此次先看看媒体组件 重点学习前面几个 链接如下 https uniapp
  • 【1024狂欢】力扣经典链表OJ题合集

    现在的力扣题的源代码我会全部一并上传至我的码云仓库里面 点我看仓库 写在前面 首先祝各位程序猿1024狂欢节快乐鸭 这是属于我们的节日 为了致敬1024 今天的力扣系列不再是一题了 而是多个题的组合 也是与我们最近更新的内容梦幻联动 祝大家
  • Kibana在Centos上开机启动

    1 需要下载kibana 去官网下 2 解压到自己指定的目录下 我是放到了 usr local下 3 执行 vi usr lib systemd system kibana service 插入下面内容 Unit Description k
  • 高性能计算(HPC)和智能计算理解

    1 现代终端设备一般都跟云端服务器相连 但只要可能 我们都希望计算可以在本地终端解决 这样做的好处是多方面的 既可以减小网络带宽的压力 又可以避免网络传输产生的时延 还可以让用户的数据更安全 现代终端设备一般用一个片上系统 SoC 做计算
  • Java实验三 基于GUI的网络通信程序设计【代码构建逻辑】【双向通信】【超多细节优化!!】

    写在前面 这次实验代码的构建主要是更加熟练的运用socket网络编程 文件输入输出流 GUI设计 容器的使用 多线程的运用等等多方面的知识 是综合类题型 做完受益身心的类型 题目如下 编写程序完成以下功能 1 设计一个基于GUI的客户 服务
  • ES索引库的别名的使用--不停服实现索引库的重建切换

    ES 的别名不停停服切换索引 线上发布 场景 我们现在线上正在使用 ES索引库 V 没有使用ES索引库别名 两个问题 现在由于字段更新 把线上的数据重新写入了V1库 现在如何在不断服的情况下 完美的实现 从V 切换到V1 索引库 后续如果再
  • 1024,干程序才懂得节日!

    1024程序员节 1024程序员节是广大程序员的共同节日 1024是2的十次方 二进制计数的基本计量单位之一 针对程序员经常周末加班与工作日熬夜的情况 部分互联网机构倡议每年的10月24日为1024程序员节 在这一天建议程序员拒绝加班 程序
  • git fetch & git pull 总结

    一 git fetch git pull 图解 最开始 github 上存放着我们的远程仓库代码 然后在本地通过 git clone 命令 将远程仓库拉取到本地仓库 此时 本地仓库的 origin master 的内容 是远程仓库 mast
  • 教你如何快速下载python

    1 打开python官网 链接 py官网 2 找到自己要安装的版本 点击下载 3 下载 exe文件 打开 4 弹出标题为Install Python X X X X bit 的窗口 将下面的Add Python 打勾 点Install No
  • 各种源码下载地址(目前只有ffmpeg和nginx,libcurl,RapidJSON 文档)

    各种源码下载地址 目前只有ffmpeg和nginx libcurl RapidJSON 文档 ffmpeg源码下载地址 http ffmpeg org download html releases nginx源码下载地址 http hg n
  • Maven进阶-配置仓库

    1 1maven介绍 Maven是一个项目管理和综合工具 Maven提供了开发人员构建一个完整的生命周期框架 开发团队可以自动完成项目的基础工具建设 Maven使用标准的目录结构和默认构建生命周期 主要服务于基于Java平台的项目构建 依赖
  • 运行游戏找不到x3daudio1_7.dll怎么解决?教你如何快速修复的教程

    在计算机使用过程中 我们经常会遇到一些错误提示 其中之一就是 x3daudio1 7 dll丢失 这个错误提示可能让我们感到困惑和烦恼 但是不用担心 本文将为您介绍x3daudio1 7 dll丢失的原因以及五种修复方法 帮助您解决这个问题
  • 【网安入门】怎样花3个月零基础入门网络安全?

    写这篇教程的初衷是很多朋友都想了解如何入门 转行网络安全 实现自己的 黑客梦 文章的宗旨是 1 指出一些自学的误区 2 提供客观可行的学习表 3 推荐我认为适合小白学习的资源 大佬绕道哈 一 自学网络安全学习的误区和陷阱 1 不要试图先成为
  • 【已解决】vs2015下QtnetWork No Such File or Directory报错

    源于笔者在做qt工具时 遇到的一个问题 问题很直观 加载第三方文件时 第三方文件调用了 include

随机推荐

  • 【Linux问题】Linux修改文件出现错误E45:“readonly” option is set(add ! to override)退出不了vim

    出现这种错误时会退出不了vim 那么出现这种错误的原因有 1 该错误为当前用户没有权限对文件修改 2 该文件没有正确保存退出 正在打开状态 关闭后再保存 3 若该文件所有都关闭 提示有的人没有关闭 则删除该文件的临时文件则可正常打开 修改
  • 数据结构基础--复杂度计算

    一 算法的复杂度 算法在编写成可执行程序后 运行时需要耗费时间资源和空间 内存 资源 因此衡量一个算法的好坏 一般是从时间和空间两个维度来衡量的 即时间复杂度和空间复杂度 时间复杂度主要衡量一个算法的运行快慢 而空间复杂度主要衡量一个算法运
  • 数据仓库的特点

    大家好 我是曜耀 今天说一说数据仓库的几个特点 数据仓库 Data Warehouse 是一个面向主题的 集成的 稳定的且随时间变化的数据集合 用于 支持管理人员的决策 1 面向主题 主题就是类型的意思 传统数据库主要是为应用程序进行数据处
  • ERROR: No matching distribution found for tensorflow==2.4.0

  • 华为OD机试真题-事件推送-2023年OD统一考试(B卷)

    华为OD机试2023年最新题库 JAVA Python C 题目描述 同一个数轴X上有两个点的集合A A1 A2 Am 和B B1 B2 Bn Ai和Bj均为正整数 A B已经按照从小到大排好序 A B均不为空 给定一个距离R 正整数 列出
  • CF76E Points 题解

    题目大意 给出 n n n 个点的坐标 x x x 和 y y y 让你求
  • Inno Setup打包 node-webkit程序 iss 开机启动脚本

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近在做项目 从Web前端开发转到node webkit客户端开发 有很多新技术学习 分享一点经验 一 关于程序打包工具 Inno Setup 5 的范例iss文件的范例
  • Linux 输入输出重定向 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/nul

    From https www cnblogs com 520playboy p 6275022 html 2 gt dev null 和 gt dev null 2 gt 1 和 2 gt 1 gt dev null https blog
  • mysql表结构解析

    数据库 创建数据库CREATE DATABASE 数据库名 DEFAULT CHARSET utf8 查看所有数据库SHOW DATABASES 查看所有表SHOW TABLES 删除数据库DROP DATABASE 数据库名 创建表 CR
  • jacob提示没有注册类

    1 我也是今天把jar包部署到服务器上的时候遇到了 这个一般都跟没有输出设备有关系 1 一种方法就是配一张声卡 我就是直接让运维配了一张声卡 2 另一种方法就是先存在读 我也是网上抄的案例 但是这个只能保证有文件 但是报错还在 我看着有点难
  • PotPlayer使用技巧总结

    PotPlayer作为一款体积小的视频播放软件 实在是非常方便 最重要的是没有广告 干净 为了能更好的使用它 方便学习 特此总结一些好用的技巧 最常用功能 一 改变速度播放视频 使用的第一组快捷键 z x c 这三个按钮分别是还原 恢复播放
  • 华为OD机试 C++ 【最佳的出牌方法】

    题目 想象一下 你有5张扑克牌 牌面数字是1 10 还有J Q K 计算五张牌的总分 如果这5张牌是连续的 比如5 6 7 8 9 每张牌的分数就是它数字的两倍 如果不连续 那每张牌的分数就是它的数字 但有个小技巧 如果你有2或3张一样的牌
  • ROS启动仿真环境编译源码时候经常遇到的问题以及对策

    move base msgs https github com ros planning navigation msgs git Could not find a package configuration file provided by
  • C++ string的大小写转换

    include
  • 一款红队的工具仓库

    Gui tools Gui tools 一款集成的图形化渗透工具 包含大量WebShell管理 信息收集 漏洞扫描 综合漏洞利用 中间价漏洞利用工具 是红队成员快速 批量打点利器 护网攻防演练必备工具 红队火眼系统 火眼安全系统 一个面向渗
  • 数据库查询常用关键字JOIN与LEFT JOIN/UNION与UNION ALL/GROUP BY

    今天来回顾一下数据库查询中 常用的几个关键字 关注这些细节 对于我们 写出高效的SQL语句 还是有帮助的 1 JOIN 与 LEFT JOIN JOIN 等价于INNER JOIN 是强关联 JOIN只查询出左表能够在右表中匹配到记录的行
  • RHCA--260 故障排除1 slow ops, oldest one blocked for 1844 sec, mon.clienta has slow ops

    RHCA 260 第二题看似是送分题 只要保证ceph环境正常不用做任何事就可以得分 但始终会有这样或者那样的情况会造成集群状态异常 现象 root serverc ceph s cluster id ab26a238 1643 11ee
  • Linux安装kafka-manager

    相关链接https github com yahoo kafka manager releases kafka manager 2 0 0 2下载地址 百度云链接 https pan baidu com s 1XinGcwpXU9YBF46
  • 红帽8配置yum源

    使用传输工具 上传文件到 etc yum repos d 或 wget O etc yum repos d CentOS Base repo http mirrors aliyun com repo Centos 8 repo 注 不能下载
  • 我的va_start和va_end学习

    va start和va end定义 1 va start和va end是两个宏 2 在c语言中 当我们无法列出传递函数的所有形参类型和数目时 可以用省略号指定参数表 相关知识 1 va list ap 是定义一个字符指针ap 2 va st