
C/C++
文章平均质量分 53
汇聚 C/C++ 语言相关基础知识!
王廷云的博客
一个热爱科学技术的人,喜欢创新,喜欢技术分享!
展开
-
【C语言】之 Linux 系统编程 - 目录操作
目录的操作函数:具体功能请查看帮助手册 man 3 opendir// 打开目录DIR *opendir(const char *pathname) // 成功返回指针 失败返回NULL// 遍历目录struct dirent *readdir(DIR *dp) // 成功返回结指针,失败或到目录尾返回NULL// 重置目录流指针位置void rewinddir(DIR *...原创 2019-01-19 17:20:48 · 518 阅读 · 0 评论 -
【C语言】之使用堆栈模型实现找迷宫的游戏
/******************************************** * 文件名:MiGong.c * 文件描述:使用堆栈模型实现找迷宫的游戏 * 编辑人:王廷云 * 编辑日期:2017-11-21 * 修改日期:2018-2-1*********************************************/#include <stdio.h&...原创 2018-03-28 16:52:16 · 515 阅读 · 0 评论 -
【C语言】之实现字符界面的五子棋游戏
此项目总共文件3个文件 main.c、fiveChess.h 和 fiveChess.c,需要放到同一目录下编译main.c/******************************************************* * 文件名: main.c * 文件描述: 五子棋工程的主函数 * 工程描述: 实现字符界面的五子棋游戏,支持光标控制位置 * ...原创 2018-03-23 15:24:11 · 4060 阅读 · 1 评论 -
【C语言】之实现简易的学生信息管理系统
该项目数据存储方式使用的是动态数组,所以需要用到动态数组库,具体库文件参考->我的动态数组库<-上的两个文件 ArrayLib.h 和 ArrayLib.c学生管理系统的文件有三个 main.c、stuSystem.h 和 stuSystem.c,以上五个文件放在同一目录下编译main.c/**************************************...原创 2018-03-23 11:38:40 · 7561 阅读 · 29 评论 -
【C语言】之实现2048简易字符界面游戏
本次工程项目总共有三个文件:main.c 2048game.h 2048game.c 需要放到一起编译main.c/************************************** * 文件名:main.c * 文件描述:实验简易的字符界面2048游戏 * 编辑人:王廷云 * 编辑日期:2017-10-21 * 修改日期:2018-2-10***********...原创 2018-03-22 14:57:53 · 2271 阅读 · 0 评论 -
【C语言】之实现俄罗斯方块游戏
实现思路:关键点是使用闹钟信号,闹钟定时一段时间触发信号函数,在信号函数里对方块进行自动下落操作,而主线控制界面显示以及处理用户的输入。 共有两个文件 main.c 和 data.h,需要把两个文件放到同一目录下main.c/*********************** * name: main * 功能:实现俄罗斯方块小游戏 * 编辑人:王廷云 * 编辑日期:2017...原创 2018-03-21 19:12:43 · 11129 阅读 · 35 评论 -
【C语言】之实现方块碰撞游戏
总共有三个文件 main.c block.c block.h 需要一起编译main.c/***************************** * 项目名称: 方块碰撞 * 功能描述: 实现简易的方块碰撞功能 * 编辑人:王廷云 * 编辑日期:2017-12-20*****************************/#include <unistd.h...原创 2018-03-21 12:03:55 · 1087 阅读 · 0 评论 -
【C语言】之实现 shell 模拟终端
/********************************************* * 文件名:myShell.c * 功能描述:模拟终端shell并实现shell外部命令 * 编辑人:王廷云 * 编辑时间:2017-8-21 * 修改时间:2018-1-23*********************************************/#include &l...原创 2018-03-21 11:04:30 · 6708 阅读 · 0 评论 -
【C语言】之实现简单的打字程序
/*********************************************** * 文件名:typeWroe.c * 文件描述:实现简易的字符界面的打字程序-linux平台下 * 编写人: 王廷云 * 编写日期: 2017-10-17 * 修改日期: 2018-2-10***********************************************/...原创 2018-03-20 11:57:50 · 4412 阅读 · 0 评论 -
【C语言】之获取屏幕显示器信息
操作的设备为:/dev/fb —-显存设备完整源代码如下:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <linux/fb.h>i...原创 2018-03-06 13:22:14 · 13769 阅读 · 1 评论 -
【C语言】之把 yuyv422 格式的图片转换为 yuv420 格式
平台:linux 理论基础:在一帧yuyv422图像中,y的个数为像素个数,u和v的个数为像素个数的一半;在yuyv420中,y的个数不变,u,v 个数再减半,为像素个数的1/4 ;yuv420p中的p表示yuv420中的数据 y u v 三种数据分开存放,先存放y数据,在存放u数据,最后存放v数据。/***********************************...原创 2018-04-07 11:01:53 · 2706 阅读 · 0 评论 -
【C语言】之把yuyv422格式的图片转换为pnm格式的图片
平台:Linux/**************************************************************************** * 文件名:Yuyv422ToPnm.c * 文件描述:把yuyv422格式的图片转换为pnm格式的图片,需要提供yuv422源文件名 * yuv图片的宽,yuv图片的高以及需要转换的pnm图片...原创 2018-04-06 18:11:22 · 1166 阅读 · 0 评论 -
【C语言】之使用v4l2编程操作摄像头设备获取图片
进行操作前请参考我的另一篇博客: Linux下使用V4L2编程获取摄像头设备信息看懂之后再研究下面的程序:/***************************************************** * 文件名:GetYuyv.c * 文件描述:linux下使用v4l2编程操作摄像头设备获取图片 * 编写人:王廷云 * 编写日期:2017-12-1...原创 2018-04-06 17:05:43 · 4894 阅读 · 8 评论 -
【C语言】之使用V4L2编程获取摄像头设备信息
如果想进一步了解V4L2编程,可以访问V4L2编程帮助手册官网 http://v4l.videotechnology.com/dwg/或者在我的网盘上下载 https://pan.baidu.com/s/15gmKHxXrXqT-lCr5HnVYVQ里面包含了所有关于V4L2编程的命令和例程/***********************************...原创 2018-04-06 15:59:57 · 6117 阅读 · 9 评论 -
【C语言】之获取 bmp 图片信息
#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&gt;typedef unsigned int u32;typedef u原创 2018-03-14 09:46:25 · 2548 阅读 · 2 评论 -
【C语言】之往显存中刷入一张bmp图片数据
#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include &lt;fcntl.h&gt;#include &lt;linux/fb.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&am原创 2018-03-14 17:57:40 · 1082 阅读 · 0 评论 -
【C语言】之获取显存一帧数据并保存为pnm格式图片
#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&gt;#include &lt;sys/ioctl.h&a原创 2018-03-14 17:55:39 · 1942 阅读 · 0 评论 -
【C语言】之获取显存一帧数据并保存为bmp图片
#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include &lt;string.h&gt;#include &lt;sys/types.h&gt;#include &lt;sys/stat.h&gt;#include &lt;fcntl.h&原创 2018-03-14 17:53:31 · 4412 阅读 · 0 评论 -
【C语言】之深入探讨 yuv 之间的关系和转换
YUV信号: 准确来说,YUV是一种颜色编码方法,而yuv信号是由RGB经过矩阵变换电路(先不用去理它是如何转换的)得到的亮度信号Y和两个色差信号U(blue-Y)、V(red-Y) 屏幕分辨率: 我们经常说屏幕的分辨率:1204x768 等,指的是整个屏幕的有768行像素,每行有1024个像素,如果图像像素为RGB格式(准确来说是RGB888:表示R、G、B各占8个比特...原创 2018-01-16 17:49:16 · 1519 阅读 · 1 评论 -
【C语言】之整数 IP 和字符串 IP 之间的转换
IP一般由32位整数组成,按每8位划分为4部分:255.255.255.255 该显示方式为字符串形式,而IP一般是以整数形式显示。下面通过位移和求余取整操作快速实现整数IP转换为字符串IP: unsigned int IP_Addr = 1713350848 转化为二进制为:01100110-00011111-10101000-11000000 根据8位划分得到结果为102-31-168-...原创 2018-09-19 14:55:26 · 9139 阅读 · 4 评论 -
【C语言】之运算符优先级别
熟记运算符优先级别技巧:1、小括号 (),中括号 [],结构成员访问操作符 -> 和 . 优先级别最高!2、所有单目运算符 ~ ! ++ – - + * & (type) sizeof 优先级别第二。3、之后往下排:算术运算符(* / % + -) –> 移位运算(<< >>) –> 关系算符(> >= < <=...原创 2018-03-12 19:28:14 · 3552 阅读 · 0 评论 -
【C语言】之实现查找重复元素
/* * 文件名:repeatChar.c * 功能描述:给定一组元素值,打印出其中有重复出现的元素 * 编写人:王廷云 * 编写日期:2017-1-10*/#include &lt;stdio.h&gt;#define NR 10 // 输入整数的个数int main(void){ int ar[NR]; int i, j; fp...原创 2018-03-15 13:27:08 · 6305 阅读 · 0 评论 -
【C语言】之实现 printf 函数功能
/*********************************************** * 文件名: myPrintf.c * 文件功能: 使用putchar函数模拟printf函数的功能 * 编辑人: 王廷云 * 编辑时间: 2017-10-14 * 修改时间: 2018-1-12***********************************************...原创 2018-03-19 23:07:32 · 15727 阅读 · 8 评论 -
【C语言】之使用字符模拟跑马灯效果
/****************************************** * 文件名:circleChar.c * 功能描述:使用字符模拟跑马灯效果-Linux平台下 * 编辑人:王廷云 * 编辑日期:2017-10-10 * 修改日期:2018-1-12*******************************************/#include &lt;s...原创 2018-03-19 20:41:34 · 5514 阅读 · 0 评论 -
【C语言】之实现文件复制功能
/* * 文件名:fileCopy * 功能描述:实现文件的复制功能-linux平台下 * 编写人:王廷云 * 编写日期:2018-1-12*/#include <stdio.h>#include <stdlib.h>#define BUFFSIZE 1024 // 缓冲区大小/* 程序从主函数开始 * 思路: * -> 以读的方...原创 2018-03-19 18:35:58 · 29949 阅读 · 3 评论 -
【C语言】之实现闰年判断
/* * 文件名:leapYear.c * 功能:任意输入一个年份,判断其是否为闰年 * 编辑人:王廷云 * 编辑日期:2017-12-12*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(void){ int year; fprintf(stdout, "请输入一个年份,我将判断其是否为闰..原创 2018-03-16 12:46:23 · 26062 阅读 · 0 评论 -
【C语言】之实现数组数据旋转
/* * 文件名:数组旋转.c * 功能描述:把数组数据顺时针或逆时针旋转 * 编辑人:王廷云 * 编辑日期:2017-12-12*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define ROW 4 // 行数#define COL 4 // 列数/* 按键输入枚举 */e...原创 2018-03-16 11:41:34 · 3614 阅读 · 0 评论 -
【C语言】之实现对数组数据进行左移、右移和翻转
/* * 文件名:moveData.c * 功能描述:对数组数据进行左移、右移和翻转 * 编写人:王廷云 * 编写日期:2017-10-10*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define NR 10 // 元素个数/* 按键输入枚举 */enum key_e { UP,...原创 2018-03-16 10:51:55 · 12038 阅读 · 0 评论 -
【C语言】之实现可变参函数工作原理
/* * 文件名: variableArgument.c * 功能描述: 实现可变参函数工作过程原理 * 编写人: 王廷云 * 编写时间: 2017-10-13*/#include &lt;stdio.h&gt;#include &lt;stdarg.h&gt;double varFunc(int first, ...); // 可变参函数声明/* 主函数声明 */in...原创 2018-03-16 09:37:40 · 239 阅读 · 0 评论 -
【C语言】之实现句子单词逆序输出
/* * 文件名: reverseWord.c * 文件功能: 把字符串中的所有单词逆序输出 * 编写人:王廷云 * 编写日期:2017-12-20*/#include &lt;stdio.h&gt;#include &lt;string.h&gt;void reverseWords(char *str); // 单词逆转函数声明/* 主函数 */int main(vo...原创 2018-03-15 15:25:44 · 14447 阅读 · 4 评论 -
【C语言】之实现多达50位数相乘的运算
/* * 文件名:multiply.c * 功能:实现支持50位数乘以50位数&lt;用bc命令验证结果&gt; * 编辑人:王廷云 * 编辑时间:2017-12-20*/#include &lt;stdio.h&gt;#include &lt;string.h&gt;#define NR 50void reserverString(char *原创 2018-03-15 14:41:10 · 3149 阅读 · 3 评论 -
【C语言】之实现检测平台大小端
/* * 文件名: Ending.c * 文件描述: 检测当前平台是大端存储还是小端存储, 同时把大小端数据逆置 * 大端存储:高数据为在低地址 小端存储:低数据位在低地址 * 编写人: 王廷云 * 编写日期: 2017-10-17*/#include &lt;stdio.h&gt;/* 使用联合来证明平台大小端 */union store_u { ...原创 2018-03-15 10:56:21 · 672 阅读 · 0 评论 -
【C语言】之实现字符串字符逆置
/* * 文件名: stringReverse.c * 文件功能描述: 把字符串的所有字符逆置 * 编写人:王廷云 * 编写日期:2017-1-10*/#include &lt;stdio.h&gt;#include &lt;string.h&gt;void reverseStr(char *str); // 字符串逆置函数声明/* 主函数 */int main(voi...原创 2018-03-15 10:45:04 · 10869 阅读 · 2 评论 -
【C语言】之实现大小写字母转换
/* * 文件名:字母大小写转换.c * 功能描述: * 输入一个字符判断其是否为字母,如果是字母则将大写转换为小写或将小写转换为大写 * 编写人:王廷云 * 编写日期:2017-1-10*/#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;ctype.h&gt;int main(void原创 2018-03-15 10:35:28 · 25628 阅读 · 0 评论 -
【C语言】之实现回文数判断
/* * 文件名:palindrome.c * 功能描述:判断一个正整数是否为回文数 * 回文数:121 12344321 3443 * 编写人:王廷云 * 编写日期:2017-1-10*/#include &lt;stdio.h&gt;int main(void){ int num; fprintf(stdout, "请输入一个正整数:"); ...原创 2018-03-15 10:25:47 · 13865 阅读 · 0 评论 -
【C语言】之实现十进制转换为二进制
/* * 文件名:二进制转换.c * 功能描述:把10进制数转换为二进制数 * 编写人:王廷云 * 编写日期:2017-1-10*/#include &lt;stdio.h&gt;#define NR (sizeof(int)*8) // 二进制位的个数void deciToBin(int num); // 十进制转换为二进制函数声明/* 主函数 */int ...原创 2018-03-15 10:16:01 · 15044 阅读 · 0 评论 -
【C语言】之实现三角形类型判断
/* * 文件名:三角形类型判断.c * 功能描述:输入三角形三条边,判断其类型 * (普通 直角 等边 等腰) */#include <stdio.h>#include <stdlib.h>int main(void){ int a, b, c; fprintf(stdout, "请输入任意三角形的三条边长(正整数):");...原创 2018-03-15 09:25:33 · 14110 阅读 · 1 评论 -
【C语言】之实现质数的判断
/* * 文件名:质数判断.c * 功能描述:判断一个数是否为质数 * 编辑人:王廷云 * 编辑时间:2017-1-10*/#include &lt;stdio.h&gt;int main(void){ int num; fprintf(stdout, "请输入一个正整数:"); /* 获取并检查用户输入 */ while (1) {...原创 2018-03-16 14:43:44 · 18046 阅读 · 0 评论 -
【C语言】之实现整数的通用进制转换
/* * 文件名:baseConvert.c * 功能描述:实现将10进制整数转换为进制大于1的数 * 编辑人:王廷云 * 编辑日期:2017-1-1*/#include &lt;stdio.h&gt;void convertBase(int num, int base); // 通用进制转换函数/* 从主函数开始 */int main(void){ int nu...原创 2018-03-16 15:12:55 · 2430 阅读 · 0 评论 -
【C语言】之类型判断
类型判断: 声明一种类型后,特别是复杂的类型时,判断的方法为: 以标识符为起点 先右后左 碰到'()'掉头 所有路径只走一次。举例分析int a[10][2] a为标识符,往右走遇到中括号'[',说明a为数组,对于数组,关心的是数组元素的个数和元素类型,继续往右走可以发现元素个数为10个,类型呢?往右走遇到’[‘,说明类型...原创 2018-03-13 15:56:56 · 11902 阅读 · 0 评论