47、C语言输入输出之printf_s()函数详解

C语言输入输出之printf_s()函数详解

1. 输入循环处理

在程序中,有一个循环会持续执行,直到当前字符为换行符。每次循环迭代时,程序期望读取一个整数或者一个名称。循环首先会调用 getinteger() 函数尝试读取整数,如果未找到整数,该函数返回 false ,此时会调用 getname() 函数读取名称。若也未找到名称,说明输入既不是名称也不是整数,程序会输出一条消息后结束。

2. 屏幕输出概述

向屏幕的命令行写入数据比从键盘读取输入要容易得多。因为写入时你清楚要写的数据,而读取输入时可能会遇到各种错误输入的情况。格式化输出到标准输出流的主要函数是 printf() ,你可能已经广泛使用过它。 stdio.h 头文件可能还会声明可选的 printf_s() 函数,它是 printf() 的安全版本。两者的主要区别在于, printf_s() 不允许在格式字符串中包含 %n 输出规范,因为 %n 会向内存写入数据,存在安全风险。通过不接受 %n 作为有效格式规范, printf_s() 确保了格式字符串被恶意篡改时不会被处理。后续代码将使用 printf_s() ,若系统不支持,也可使用 printf() 。使用时,需在包含库头文件的 #i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值