2.C标准库——stdio.h

C 标准库 - <stdio.h>

简介

stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。

库变量

下面是头文件 stdio.h 中定义的变量类型:

序号 变量 & 描述
1 size_t
这是无符号整数类型,它是 sizeof 关键字的结果。
2 FILE
这是一个适合存储文件流信息的对象类型。
3 fpos_t
这是一个适合存储文件中任何位置的对象类型。

库宏

下面是头文件 stdio.h 中定义的宏:

序号 宏 & 描述
1 NULL
这个宏是一个空指针常量的值。
2 _IOFBF、_IOLBF 和 _IONBF
这些宏扩展了带有特定值的整型常量表达式,并适用于 setvbuf 函数的第三个参数。
3 BUFSIZ
这个宏是一个整数,该整数代表了 setbuf 函数使用的缓冲区大小。
4 EOF
这个宏是一个表示已经到达文件结束的负整数。
5 FOPEN_MAX
这个宏是一个整数,该整数代表了系统可以同时打开的文件数量。
6 FILENAME_MAX
这个宏是一个整数,该整数代表了字符数组可以存储的文件名的最大长度。如果实现没有任何限制,则该值应为推荐的最大值。
7 L_tmpnam
这个宏是一个整数,该整数代表了字符数组可以存储的由 tmpnam 函数创建的临时文件名的最大长度。
8 SEEK_CUR、SEEK_END 和 SEEK_SET
这些宏是在 fseek 函数中使用,用于在一个文件中定位不同的位置。
9 TMP_MAX
这个宏是 tmpnam 函数可生成的独特文件名的最大数量。
10 stderr、stdin 和 stdout
这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。

C 库函数 - snprintf()

描述

C 库函数 int snprintf(char *str, size_t size, const char *format, ...) 设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断。

声明

下面是 snprintf() 函数的声明。

int snprintf ( char * str, size_t size, const char * format, ... );

参数

  • str -- 目标字符串。
  • size -- 拷贝字节数(Bytes)。
  • format -- 格式化成字符串。
  • ... -- 可变参数。

返回值

  • (1) 如果格式化后的字符串长度小于等于 size,则会把字符串全部复制到 str 中,并给其后添加一个字符串结束符 \0;
  • (2) 如果格式化后的字符串长度大于 size,超过 size 的部分会被截断,只将其中的 (size-1) 个字符复制到 str 中,并给其后添加一个字符串结束符 \0 
  • 返回值为欲写入的字符串长度。

实例

下面的实例演示了 snprintf() 函数的用法。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
int main()
{
	char buffer[50];
	char* s = "fanfanforever";

	//读取字符串并存储在buffer中
	int j = snprintf(buffer, 7, "%s\n", s);

	//输出buffer及字符数
	printf("string:%s\ncharacter count = %d\n", buffer, j);

	return 0;
}

输出结果为:

C 库函数 - scanf()

描述

C 库函数 int scanf(const char *format, ...) 从标准输入 stdin 读取格式化输入。

声明

下面是 scanf() 函数的声明。

int scanf(const char *format, ...)

参数

  • format -- 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符

format 说明符形式为:

[=%[*][width][modifiers]type=]

具体讲解如下:

参数 描述
* 这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中。
width 这指定了在当前读取操作中读取的最大字符数。
modifiers 为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 DSP 实验报告 院 ( 系 ) 名 称 自 动 化 科 学 与 电 气 工 程 学 院 学 生 姓 名 学 号 任 课 老 师 吴 冠 2014 年 6 月 DSP 实验报告 1 实验 1 CCS 入门实验 2(C 语言的使用) 一、 实验目的 1. 学习用标准 C 语言编制程序; 了解常用的 C 语言程序设计方法和组成部 分。 2. 熟悉使用软件仿真方式调试程序。 二、 实验内容 1. DSP 源文件的建立; 2. DSP 程序工程文件的建立; 3. 掌握 C 语言在 DSP 中的应用。 三、 实验背景知识 当使用标准 C 语言编制的程序时,其源程序文件名的后缀应为.c。CCS 在 编译标准 C 语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成 目标 DSP 的可执行代码。最后生成的是 coff 格式的可下载到 DSP 中运行的文 件,其文件名后缀为.out。由于使用 C 语言编制程序,其中调用的标准 C 的 函数由专门的提供,在编译连接时编译系统还负责构建 C 运行环境。所以用 户工程中需要注明使用 C 的支持。 四、 实验主程序 1. add.c:实验的主程序。 2. 28335.gel:系统初始化 3. 28335.cmd: 声明了系统的存储器配置与程序各段的连接关系。 Add.c 中程序: #include <stdio.h> /* ======== main ======== */ void main(){ int a=10; int b=10; int c; c=a+b; for(;;); DSP 实验报告 2 五、 实验步骤 1. 双击图标进入 CCS 环境; 2. 添加工程 pjt 文件,点击 Project open 命令 3. 在弹出的对话框中选中 cadd.pjt 文件添加该工程文件。 4. 添加 gel 文件,即右键点击工程视窗中的 GEL files,在弹出的菜单中选择 laod gel 命令。 5. 添加.out 文件,即使用 File Load Program 菜单命令。装载 add.out 文件, 进行调试。.out 文件一般存放在程序文件夹的 debug 文件夹中。 6. 打开观察窗口观看变量的值,即使用 View Watch Window 菜单命令。 7. 打开 add.c 文件,在 22 行"for(;;);"设置断点。 8. 运行程序,观察结果。 六、 实验结果 七、 实验感想 本次试验过程中我初步了解了 DSP 编程和实验箱的使用方法, 学会了使用软 件方式调试程序,为以后的实验打下一定基础。 DSP 实验报告 3 实验 2 片上外设实验 3——AD 采集实验 一、 实验目的 1. 了解 TMS320F28335 片上外设 AD; 2. 熟悉片上 AD 的使用; 3. 利用片上 AD 进行数据采集。 二、 实验内容 1. 初始化系统; 2. 初始化片上 AD,进行通道的选则 3. AD 数据采集。 三、 实验背景知识 TMS320F28335 片内 AD 简介: 当 TMS320F28335 片内有 1 个带采样保持电路的 12BIT 的 A/D 转换模块。 1. ADC 特点: 1) 带 S/H 的 12BIT 的 ADC; 2) 模拟量输入范围:0.0V~3.0V; 3) 转换率:在 25MHz 的 ADC 时钟下为 80ns; 4) 16 路 AD 转换通道; 5) 自动排序功能可以提供一次触发转换 16 路 AD,每次转换能够编程选择 16 路通道的任何 1 个; 6) 排序可以选择 2 个独立的 8 通道排序或者是 1 个大的 16 通道排序; 7) 转换结果存储在 16 个寄存器中;转换结果=4095×(输入的模拟信号 -ADCLO)÷3; 8) 有多重触发 AD 转换方式:软件启动、EVA 和 EVB; 9) 中断控制方式灵活, 可以在每次转换结束或每隔一次转换结束触发中断; 2. ADC 管脚信号 ADC 管脚由模拟量输入部分、ADC 设置部分和 ADC 电源三部分构成。 1) 拟量输入部分: DSP 实验报告 4 A 通道输入:ADCINA0~ADCINA7 B 通道输入:ADCINB0~ADCINB7 2) DC 设置部分: ADC 电压参考输出 (2V) : ADCREFP ADC 电压参考输出 (1V) : ADCREFM ADC 外部电流旁路电阻: ADCRESEXT 测试管脚: ADCBGREFIN ADC 模拟 地: AVSSREFBG ADC 模拟电源: AVDDREFBG ADC 公共地: ADCLO 3) ADC 电源: ADC 模拟地: VSSA1、VSSA2 ADC 模拟电源: VDDA1、VDDA2 ADC 数字地: V

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值