【C++/opencv】C++一些操作函数

本文详细介绍了C语言中的文件读取函数fread的使用方法,包括参数解释及示例代码。同时,探讨了CV_Assert函数的作用,用于检查数据状态。此外,对比了字符串比较函数strncmp和strcmp的用法,并解析了Clamp函数如何限制数值范围。最后,深入讲解了枚举类型定义及memset、memcpy函数在内存初始化和复制中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.fread
	size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   ) 
	buffer   是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间,buffer就是一个索引)   
	size     是每次读取的字节数   
	count    是读取次数   
	strean   是要读取的文件的指针   

例子:从文件fp里读取100个字节 可用以下语句
FILE* fp = fopen(“date.txt”,“r”);
fread(buffer,100,1,fp)

2.CV_Assert(一般用来查看数据是否为空)
	CV_Assert()若括号中的表达式值为false,则返回一个错误信息。
	类似c++中的assert函数:assert (int X );如果X值为假(即为 0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。(#include <assert.h>)

举例:查看文件是否为空
FILE* fp = fopen(“date.txt”,“r”);
assert( fp!=NULL);

3.strncmp 比较字符串 返回不同字符的个数n表示可以选择比较长度
	int strncmp(const char *string1, const char *string2, size_t count);
	string1 给定的字符串
	string2 给定的字符串
	count 要进行比较的长度
返回值:当string1大于string2时,返回1;等于时,返回0;小于时,返回-1。

举例:char str1[]=“Hello”,str2[]=“Help”;
int a,b,c;
a = strncmp(str1,str2,3); //比较字符串str1,str2前3个字符 返回0
b = strncmp(str1,str2,4); //比较字符串str1,str2前4个字符 返回-1

4.strcmp 比较字符串 同点3 
	int strcmp(const char *string1, const char *string2);
5.Clamp函数可以将随机变化的数值限制在一个给定的区间[min, max]内:

Clamp(T x, T min, T max)
{
if (x > max)
return max;
if (x < min)
return min;
return x;
}

6.enum枚举 基本形式:enum enumType {Monday, Tuesday, Wednesday, Thursday, Friday, 
Saturday, Sunday};enumType 标志符,也可以省略。enum默认为int类型;
未初始化的枚举值默认比前一个的枚举值大1.其最小值为0;

enum { one ,two ,three};one =0;two=1;three=3
enum enumType {Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5, Saturday=6, Sunday=7};

7.memset函数memset可以说是初始化内存的“万能函数”

char str[10];
char *p = str;
memset(p, 0, sizeof( p)); //地址的大小都是4字节
0 0 0 0 -52 -52 -52 -52 -52 -52

memset(p, 0, sizeof(*p)); //*p表示的是一个字符变量, 只有一字节
0 -52 -52 -52 -52 -52 -52 -52 -52 -52

memset(p, 0, sizeof(str));
0 0 0 0 0 0 0 0 0 0

memset(str, 0, sizeof(str));
0 0 0 0 0 0 0 0 0 0

memset(p, 0, 10); //直接写10也行, 但不专业
0 0 0 0 0 0 0 0 0 0

8.memcpy函数
void *memcpy(void *dest, const void *src, size_t n);
void* 是要返回一个指针  与void 不同
它的功能是从src的开始位置拷贝n个字节的数据到dest。如果dest存在数据,将会被覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值