自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (4)
  • 收藏
  • 关注

原创 文本文件加密解密(一)

#define _CRT_SECURE_NO_WARNINGS#define SRC_PATH "C:\\Users\\michael\\Desktop\\123.txt"#define CODE_PATH "C:\\Users\\michael\\Desktop\\123_code.txt"#define DECODE_PATH "C:\\Users\\michael\\Desktop\\1

2015-07-31 18:00:15 1403

原创 宽字符文本的处理

背景:在将一个xls文件保存为文本文件时,有两种选择。 当处理一个Unicode 格式的文本文件时,fopen,fgetc等函数不可以了,需要用到wfopen,fgetwc函数。

2015-07-31 16:48:01 448

原创 C语言——计算文件大小(二)

接上篇,打开文件的方式是r还是rb,对文件大小的计算结果有影响。具体是因为fgetc函数对回车字符的处理问题。 二进制文件与文本文件的区别(windows) 区别:读取时,会将\r\n解析为\n 写入时,会将\n解析为\r\n 二进制文件与文本文件的区别(linux) 无区别 所以,以文本方式打开文件时,遇到一个回车,文件大小减少1.说明:测试文件不论格式,二进制和文本文件均测试过,不影响结果#de

2015-07-31 15:37:44 814

原创 C语言——计算文件大小(一)

#define _CRT_SECURE_NO_WARNINGS#define PATH "C:\\Users\\michael\\Desktop\\mima.txt"#include <stdlib.h>#include <stdio.h>/** @brief 方法一:计算文件大小,单位是字节* @param()* @return int 文件大小*/int getFileSize(

2015-07-31 11:39:19 4251 3

原创 文本文件与二进制文件

1.EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0xFF(十进制为-1),因此可以用EOF作为文件结束标志。 2.当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。 3.为了能同时处理这两种文件,引入feof函数,int feof(F

2015-07-31 11:33:50 449

原创 多线程应用(三)

#include <stdlib.h>#include <stdio.h>#include <Windows.h>#include <process.h>int find = 0;//0表示没有找到int *addr_find = NULL;typedef struct { int* pStart;//指向要查找的数组首地址 int length;//查找区域的空间大小

2015-07-31 09:38:34 296

原创 stdout 与 stderr区别

stderr,可以在编译阶段输出, stdout必须在运行时刻。stdout可以重定向,stderr不可以。下面程序的输出是什么?(intel笔试2011) int main() { fprintf(stdout,”Hello “); fprintf(stderr,”World!”); return0; }

2015-07-30 18:05:09 508 1

原创 文件处理——文件重定向(二)

1.stderr 不可以重定向 2.freopen 函数实现重定向,不需要借助dos。#define _CRT_SECURE_NO_WARNINGS#define OUTPATH "C:\\Users\\michael\\Desktop\\0730.txt"#define INPATH "C:\\Users\\michael\\Desktop\\ipconfig.txt"#include <s

2015-07-30 17:52:31 285

原创 fgets,fputs,fprintf,fscanf

主要讨论fgets,fputs ,fprintf,fscanf与gets,puts,printf,scanf区别1.stdin stdout,stderr说明 简单讲,FILE * 类型指针 stdin —-默认对应是键盘,键盘是文件一种,设备文件 stdout —默认对应是显示器,也是文件一种 stderr—默认对应是显示器 2.fputs(const

2015-07-30 17:33:37 560

原创 文件处理——文件重定向(一)

#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <stdio.h>void main(){ char str[100] = { 0 }; gets(str); system(str);}1.运行程序,生成exe文件。2.dos命令下,切换到debug目录下2.1 cmd后,输入d:,2.2 cd

2015-07-30 14:56:39 659

原创 dos 命令——切换盘符与切换工作目录

1.切换盘符 c:,d: 2.切换工作目录:cd 路径,cd 命令只能在同一盘符下进行工作目录的切换 如题,这是两种命令,不注意的话容易产生误解。 说明:如图操作,达不到想要的结果。原因在这里是想从c盘切换到d盘的工作目录。 正确的步骤: 1.d:,先必须切换盘符 2.cd D:\vs2013\0730\Debug,其次切换工作目录 有没有一条dos命令可以解决这个问题呢? ye

2015-07-30 14:41:28 30750 2

原创 C语言——缓冲区

#define _CRT_SECURE_NO_WARNINGS#define PATH "C:\\Users\\michael\\Desktop\\buffer.txt"#include <stdlib.h>#include <stdio.h>void main(){ FILE *path = fopen(PATH, "w"); if (NULL == path)

2015-07-30 14:09:34 471

原创 文件处理——输出文件到屏幕显示

#define _CRT_SECURE_NO_WARNINGS#define PATH "C:\\Users\\michael\\Desktop\\mima.txt"#include <stdlib.h>#include <stdio.h>/** @brief 方法一:windows 命令形式 type 文件路径* @param()* @return void*/void showFi

2015-07-30 11:30:01 877

原创 文件读写——以字符方式读取与写入文件

将一个文本文件以字符方式打开,并且以字符方式写入另一个文本中#define _CRT_SECURE_NO_WARNINGS#define PATH "C:\\Users\\michael\\Desktop\\mima.txt"#define WPATH "C:\\Users\\michael\\Desktop\\mytxt.txt"#include <stdlib.h>#include <s

2015-07-30 10:47:02 602

原创 文件读取——以字符方式读取文本文件

#define _CRT_SECURE_NO_WARNINGS#define PATH "C:\\Users\\michael\\Desktop\\123.txt"#include <stdlib.h>#include <stdio.h>void main(){ FILE *pFile = NULL; //typedef struct _iobuf FILE; pFile = f

2015-07-30 10:34:51 710

原创 C语言——文件分类

1.按存储介质:1.1 普通文件:存储介质文件,如磁盘,磁带 1.2 设备文件:非存储介质,如键盘,打印机,显示器2.按文件的逻辑结构:2.1 流式文件:由一个个字符(字节)数据顺序组成,如视频流 2.2 记录文件:有具有一定结构的记录组成,如word文件,pdf文件3.按数据的组织形式:3.1 文本文件:ASCII文件,每个字节存放一个字符的ASCII 3.2 二进制文件:数据按其在内存中的

2015-07-29 21:26:08 4380

原创 Qt 安装包制作

前言:介绍如何制作一个Qt的安装包,工具为:NSIS,利用其创建一个脚本文件,编译运行即可。1.利用NSIS新建一个向导文件,步骤可以从网上直接参考2.这里重点说明下Qt安装包生成时所需要的环境及文件。2.1 新建一个文件夹Release,里面建一个platforms文件夹,里面包含三个dll;qminimal.dll,qoffscreen.dll,qwindows.dll. 2.2 Releas

2015-07-28 10:51:00 773

原创 面向对象与面向过程

c,c++学过编程语言的人应该都了解或听说过。编程语言是人发明的,所以其中必定蕴含许多哲理。面向过程之C语言:能锻炼单兵能力,具体解决问题能力。 面向对象之C++语言:更抽象更高级的语言,能锻炼大局观,站在指挥者的角度,调度利用各个很有能力的对象去完成任务。 例子:现实中很多领导都是不会技术的,但这不影响他成为领导。因为他面对的对象都是会技术的,他只需要知道每个人擅长什么,让他们发挥所长就可以了

2015-07-17 09:47:47 262

原创 多线程应用(二)

windows 下多线程应用:开启多个线程,一个线程实现打印信息输出功能,一个线程实现在窗体标题中记录时间变化功能。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<Windows.h>#include<process.h>void test(void *p){ int *px

2015-07-16 17:06:42 318

原创 多线程应用(一)

windows 下多线程应用:同时打开多个应用程序#include<Windows.h>#include<process.h>#include<stdlib.h>void openNotepad(void *p){ system("notepad");}void showMsgBox(void *p){ int *px = (int *)p; char str

2015-07-16 16:58:23 292

原创 数组静态库调用

目标:将一个数组静态库文件调用起来#include <stdlib.h>#include <stdio.h>#include "array.h"#pragma comment(lib, "array_lib.lib")void main(){ struct QueryResult res; MyArray array; init(&array); add_e

2015-07-15 16:10:21 567

转载 数组的封装

1.增删改查功能的实现2.要达到目标先了解下C语言中有关内存分配的几个函数 malloc,calloc,realloc2.1下面的代码比较的是malloc,calloc#include<stdio.h>#include<stdlib.h>void main(){ { printf("使用malloc函数分配内存,观察是否初始化内存\n"); int *

2015-07-14 15:25:21 441

原创 数组元素排序

1.无序数组——顺序查找法,很无语的查找法 2.有序数组——二分查找法#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void sortData(int *pArray, int length, int state){ if (state == 0) { } else if

2015-07-14 14:04:03 498

原创 vc编译器与 gcc编译器区别之一

两种编译器的区别之一:数组的定义 CodeBlocks GCC#include <stdio.h>#include <stdlib.h>//栈空间上实现动态数组int main(){ int num; printf("请输入数组的长度:"); scanf("\n%d",&num); int a[num] ; int i =0; for(i=

2015-07-14 09:12:36 809

原创 不使用中间变量实现变量交换

#include <stdio.h>#include <stdlib.h>void main(){ //way1:使用中间变量 int a = 10; int b = 20; printf("交换之前:a=%d b=%d\n", a, b); int temp; temp = a; a = b; b = temp; pri

2015-07-13 17:27:40 403

原创 三维数组用法

一维数组:int a[5]; 指针表示: int *p = a; 二维数组:int a[4][5]; 指针表示: int (*p)[5] = a; 三维数组:int a[3][4][5];指针表示: int (*p)[4][5] = a; p表示指向数组的行指针#include <stdio.h>#include <stdlib.h>//这里使用的是数组指针法打印三维数组元素vo

2015-07-13 11:36:16 3643

原创 c/c++混合编程

背景: 1.C++之父在设计C++之时,当时已经存在了大量优秀的C代码,为了支持C以及利用现成的C库,需要在C++中尽可能多的支持C,extern “C”就是其中的策略之一。 2.C++程序中经常需要调用底层的库函数,而底层驱动大多使用的是C语言开发的。 3.C编译器与C++编译器对函数的处理不同。C++中支持函数的重载功能, 例如:void add(int,int);C编译器可能处理成类似

2015-07-13 09:23:31 336

原创 指针数组与数组指针

#include <stdio.h>#include <stdlib.h>/* * @brief 演示的是如何打印指针数组元素 * @param() * @return void */void printPointerArrayElems(){ //指针数组,管理地址,按照顺序执行指令 char* str[3] = {"notepad", "calc", "ipconf

2015-07-10 17:24:29 376

翻译 Setjmp 与longjmp

Setjmp 与longjmp1.这两个函数是c语言特有的函数2.setjmp-longjmp组合的用处类似于游戏中的存盘读盘功能,经常被用于类似C++的异常恢复操作。例子演示://int setjmp(jmp_buf envbuf);//setjmp函数用缓冲区envbuf保存系统堆栈的内容,以便后续的longjmp函数使用.setjmp函数初次启用时返回0值//void longjm

2015-07-10 10:16:53 342

原创 c 大小端问题

背景知识: 大小端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。 计算机中的应用: 大端方式将高位存放在低地址,小端方式将低位存放在高地址。采用大端方式 进行数据存放符合人类的正常思维,而采用小端方式

2015-07-06 17:02:33 536

翻译 c++ 多态

#include <iostream> #include <string> using namespace std;class Grandpa{protected: int age_;public: Grandpa(int age = 100) { age_ = age; cout << "对象Grandpa构造完成!" <<

2015-07-06 11:09:54 344

原创 类或函数包装器

#include <iostream>using namespace std;template <typename T1,typename T2>T1 volume(T1 t1, T2 t2) //包装器,实现一个操作接口,操作多个类的方法{ return t2(t1);//T2若是类,则类需要重载操作符()}int area(int num){ return num *

2015-07-03 17:31:59 308

原创 new 高级用法

#include <iostream>using namespace std;class Person{public: Person() { cout << "构造函数" << endl;; } ~Person() { cout << "析构函数" << endl; }};int main(){ int

2015-07-03 15:25:50 349

原创 cout 输出字符型指针

include using namespace std; int main() { //输出正常 char* p = “hello ,world!”; cout << p << endl;//在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串 cout << (void*)p << endl;//打印地址信息 //输出异常 cha

2015-07-03 14:25:34 709

原创 C++ 类型转换

1.static-cast(需要两者具有”一定的关系”,在基础类型和对象的转换上具有优势) 2.reinterpret-cast(最灵活,也最危险。因其是将地址传递而已,转换对象间不需要任何关系) 3.const-cast(可去const属性,其他转换不行) 4.dynamic-cast(多态的优势,可以在只有接口的情况下完成后续开发) 其中只有dynamic-cast是编译器在运行期间处理

2015-07-03 10:34:19 296

线性表的链式存储代码--C语言版

1.C 语言实现的线性表的链式存储功能 2.包含测试用例代码

2016-02-22

c++——运算符重载(四) 源码

c++ 运算符重载的综合demo,知识点众多,内容强大。

2015-09-09

linux 内核技术

linux 内核文档 帮助你深入了解linux 内核开发技术

2013-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除