C语言的可变参数与字符的输入输出

本文介绍了C语言中的可变参数处理方法,包括如何定义和使用va_list,以及vprintf函数的运用。此外,还详细讲解了C语言中字符输入输出函数printf、sprintf和sscanf的功能和用法,提供了实际示例,帮助理解它们在处理字符串和格式化数据时的作用。
摘要由CSDN通过智能技术生成

一.可变参数的处理

当我们在写程序的时候,如果传入的参数是确定的,那么依次处理就行;如果参数的长度不确定,该怎么处理呢?

在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表。如 void func (...)

另外C语言提供了一套标准的处理方法。

先来看看下面的例子。(该函数实现的是:将不定长度的字符输出)

#include "stdarg.h"

void Dug_Printf(const char *fmt, ...)
{
    va_list args; 
    va_start(args, fmt); 
    vprintf(fmt, args); 
    va_end(args); 
    fflush(stdout);
}

来一步步分析下每段代码的含义:

(1)首先定义一个va_list型的变量,这个变量是指向参数的指针,也就是指向参数列表里的"...";VA_LIST 是在C语言中解决变参问题的一组宏。

(2)va_start(args, fmt); 和va_end(args); 是一组;前者对定义的参数 进行初始化,让它指向可变参数表里面的第一个参数;后者在获取所有的参数之后,将定义的参数指针关掉,以免发生危险。

(3)vprintf 的作用是将可变参数列表的格式化数据打印到stdout。

(4)fflush(stdout):清空输出缓冲区,并把缓冲区内容输出。

二. c语言常用的字符输入输出函数(printf,s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值