![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC++程序设计
yueyaquanBoy
这个作者很懒,什么都没留下…
展开
-
VC编程读取文本数据
VC编程读取文本数据 我们通常把数据存诸在txt文件上,但是我们通常要把这些数据取出来并进行处理。下面我将介绍一种在VC++应用程序中读取文本数据的方法。一.前言因为经常要处理地质方面的数据。但是很多数据它不是直接存贮在数据库文件(如Access文件等),而是存贮在txt文件。经常有同学问我怎么通过编程读取实现文本文件中的数据。其实存贮在txt文件也有它的好处转载 2014-04-16 10:47:33 · 949 阅读 · 0 评论 -
UNICODE编码下CFile写入文本(TEXT)
#include #ifndef _UNICODE#define _UNICODE //使用UNICODE编码#endif#include //为了使用CString类const int UNICODE_TXT_FLG = 0xFEFF; //UNICODE文本标示int main(){ CString strResul原创 2014-04-19 14:52:56 · 1048 阅读 · 0 评论 -
关于MFC使用 Unicode 字符集出现乱码的问题
#include #ifndef _UNICODE#define _UNICODE //使用UNICODE编码#endif#include //为了使用CString类const int UNICODE_TXT_FLG = 0xFEFF; //UNICODE文本标示int main(){ FILE* WriteF;原创 2014-04-19 14:27:01 · 1581 阅读 · 0 评论 -
在一个char数组中查找指定的字符ch,函数名findchar
/ ch 要查找的字符// str 指定被查找的字符串// n 字符串中的字符个数int findchar(charch,char str[],int n){int i=0;while(str[i]!=ch&&i{i++; }return i;}原创 2014-04-04 07:21:30 · 5083 阅读 · 0 评论 -
C++ 中string.find() 函数的用法总结
#include #include using namespace std; void main(){ ////find函数返回类型 size_type string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i"); string flag; string::size_type position转载 2014-04-04 09:59:31 · 956 阅读 · 0 评论 -
c++中 string 类的find函数的用法
string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置int find(const char *s, int pos = 0)const;//从pos开始查找字符串s在当前串中的位置int find(const char *s, int pos, int n)const;//从pos开始查找字符串原创 2014-04-04 10:01:30 · 1204 阅读 · 0 评论 -
c++ char数组转化为string
有很多种方法:假设c字符串定义为charch[]="hello world!";1.向构造函数传入c字符串创建string对象:string str(ch);2.使用拷贝构造函数创建string对象:string str = ch;3.对已有的string对象调用string类内部定义的赋值运算符:string str;str = ch; 前两种类似,但和原创 2014-04-04 07:38:18 · 10370 阅读 · 0 评论 -
GDI泄露问题(1)
如果将一个CBrush对象设计为一个Cmydlg的成员变量,那么在这个模态对话框销毁之后,CBrush对象还存在吗?还用不用deleteobject(),如果用,写在哪里?如果不用,会不会造成GDI泄漏?原创 2014-04-18 12:44:01 · 584 阅读 · 0 评论 -
关于const char*和char*、const char** 和char** 赋值问题
根据ANSI C标准的赋值约束条件: 1. 两个操作数都是指向有限定符或无限定符的相容类型的指针。 2. 左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。 一、const char*和char* const char*的类型是:“指向一个具有const限定符的char类型的指针”。(不能修改其值) char*的类型转载 2014-04-04 07:28:44 · 705 阅读 · 0 评论 -
CString和string的互相转换
CString->std::string 例子:CString strMfc=“test“;std::string strStl;strStl=strMfc.GetBuffer(0);std::string->CString 例子:CString strMfc;std::string strStl=“test“;strMfc=strStl.原创 2014-04-04 16:23:47 · 429 阅读 · 0 评论 -
invalid conversion from 'const char*' to 'char*'
const char*是指向常量的指针,而不是指针本身为常量,可以不被初始化.该指针可以指向常量也可以指向变量,只是从该指针的角度而言,它所指向的是常量,通过该指针不能修改它所指向的数据.1.const char*是不能直接赋值到char*的,这样编译都不能通过,理由:假如可以的话,那么通过char*就可以修改const char指向的内容了,这是不允许的.所以char*要转载 2014-04-06 20:33:39 · 8974 阅读 · 0 评论 -
C语言里怎么对一组CHAR类型的数组进行查找
例如定义 char str[]="abcdefg.............."现在想要找到STR里面有没有字符“z” ,如果有字符”z“则返回值为1 没有为零#include int FindChrInStr(char *);int main(){ char str1[] ="abcde"; char str2[] ="wxyzabc原创 2014-04-06 19:47:29 · 2193 阅读 · 0 评论 -
VC编译出现“Internal error during IncrBuildImage”错误
1,项目(Project)->属性(Property)->链接器(Linker)->常规(General):“启用增量链接(Enable IncrementalLinking)”,将“是(/INCREMENTAL)”改为“否(/INCREMENTAL:NO)”;2,这时会出现另外一个警 告:“FormatCom.obj : warning LNK4075:忽略“/EDITANDCONTIN原创 2014-04-23 14:33:30 · 690 阅读 · 0 评论 -
error C2352: 'CWnd::MessageBoxW' : illegal call of non-static member function
该错误主要是因为将CWnd::MessageBox()用在非CWnd派生类里或在静态成员函数里,在非CWnd派生类里应使用AfxMessageBox()。MessageBox()是CWnd的非static函数,在static类型的成员函数只能调用静态函数。原创 2014-04-09 15:19:32 · 3638 阅读 · 0 评论 -
CFile以追加的的方式写文件
CFile是MFC中的一个类,可以方便的读写文件。如果读写一行的话建议使用CStdioFile类的ReadString()和WriteString()。这些类要实现追加的方式写文件的话。要设定参数和文件指针的位置。具体方法如下:CFile myfile; if(!myfile.Open(Filename,CFile::modeNoTruncate|CFile::modeWrite)==转载 2014-04-19 14:41:15 · 3959 阅读 · 0 评论 -
浅谈Sendmessage 和Postmessage
1、Sendmessage和Postmessage的区别原创 2014-04-16 22:26:18 · 959 阅读 · 0 评论 -
C/C++语言实现动态数组
C/C++语言实现动态数组C数组的小问题 这里说的动态数组是可以根据需要动态增长占用内存的数组,比如程序初始分配了100个元素,可是运行了一段时间后区区100个空间不能满足了,现在需要400个,怎么办呢;那肯定需要再额外分配300个。 C语言有realloc()函数来解决空间扩充的问题,但是不要忘了realloc可能会迁移内存,很多时候数组中的元素会被其它函数/模块转载 2014-04-16 22:51:58 · 1155 阅读 · 0 评论 -
利用任务管理器侦测GDI内存泄露
打开任务管理器,点击菜单“查看”——“选择列”,勾上所有项,“确定”。运行自己的程序,进行各种操作,并查看任务管理器中GDI对象和句柄数的变化。 如果在某次可逆操作中,例如,弹出一个对话框,然后关闭,GDI对象或句柄数先增加了,然后减少了,但是总量还是增加了,说明存在内存泄露,GDI对象没有被及时回收。如果句柄数出现类似情况,则情况复杂很多。 接下来,注原创 2014-04-16 23:11:14 · 3767 阅读 · 0 评论 -
C++模拟post HTTP编程
#include #include using namespace std;#include bool PostHttpPage(const std::string& hostname, const std::string& pathname, c原创 2014-04-16 10:20:57 · 663 阅读 · 0 评论 -
浅谈define和const区别
宏:对宏的处理,在编译过程中称为“预处理”。也就是说在正式编译前,编译器必须先将代码出现的宏,用其相应的宏值替换,这个过程有点你我在文字处理软件中的查找替换。所以在代码中使用宏表达常数,归根结底还是使用了立即数,并没有明确指定这个量的类型。这容易带来一些问题,所以C++使用另一更稳妥的方法来代替宏的这一功能。const:定义的常量具有数据类型,定义数据类型的常量便于编译器进行数据检查,使程序可原创 2014-04-16 22:28:59 · 594 阅读 · 0 评论 -
c++ stl库 vector简单的实现
1、类中重载了运算符“=”,返回一个对象的引用,拷贝构造函数调用了这个重载运算符;转载 2014-04-16 22:45:30 · 568 阅读 · 0 评论 -
非模态对话框 模态对话框 --创建和销毁过程
When you implement a modeless dialog box, always override the OnCancel member function and call DestroyWindow from within it. Don’t call the base class原创 2014-04-16 22:56:23 · 507 阅读 · 0 评论 -
十进制转二进制(移位法)
#include int main(){ char strBinary[sizeof(int)*8+1]; int a = 100; // 让p指向strBinary的最后一位 char *p = strBinary + sizeof(int)*8; *p = '/0'; while (a) { --p; *p = (a & 1) + 0x30; // 加0x30转变成字转载 2014-04-17 14:59:20 · 1299 阅读 · 0 评论 -
关于gethostname函数失败的问题
调用gethostname之前, 要先调用WSAStartup才可以, 否则gethostname会失败!下面是正确的代码转载 2014-04-17 14:57:50 · 2724 阅读 · 0 评论 -
error C2850: 'PCH header file'
error C2850: 'PCH header file' : only allowed at file scope; may not be in a nested construct这种错误一般是大意导致的,比如你的类声明的后面忘了分号, 或者大括号不配对引起的原创 2014-04-17 14:40:04 · 1703 阅读 · 0 评论 -
VC 逐行读写TXT文件
用流在写日志时,发现如果把"\r\n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就没有用流在写日志时,发现如果把"\r\n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就没有问题了。原创 2014-04-18 11:12:50 · 5352 阅读 · 0 评论 -
CTimeSpan得到日期差
获取两个时间差,如两个CTime的时间差,可以使用MFC中的CTimeSpan类。CTime time1 = CTime::GetCurrentTime(); CTimetime2 = CTime::GetCurrentTime(); // 两个CTime相减得到CTimeSpanCTimeSpan timeSpan = time2 - time1; // 得到总的秒数 int nTSecon转载 2014-04-03 10:06:07 · 746 阅读 · 0 评论 -
vc如何产生有效的随机数
VC如何产生有效的随机数,srand(time)函数总是产生伪随机数。int no;srand((unsigned)time(NULL));no=rand()%(n);这个总是产生伪随机数,并不能产生真正的随机数,要怎么样才能真正产生有效的随机数?随机数工作原理如下: 1) 首先给srand()提供一个种子,它是一个unsignedint类型,其取值范原创 2014-04-03 09:22:09 · 1017 阅读 · 0 评论 -
Debug Assertion Failed
VC++调程序出现如下错误: Debug Assertion Failed! Program: D:\wyuStud\debug\wyuStud.exe File: afx.inl Line:157 可能问题:1.野指针;2.内存泄露 解决方法: 1.看一看你的程序里是不是有ASSERT()或VE原创 2014-04-24 09:57:39 · 962 阅读 · 0 评论