VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer代码 >>> C++/MFC基础
我也来贴上一段经典代码吧!>>>


VC常用数据类型转换
 
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明: int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类型转换为字符串 短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 长整型(long) ltoa(l,temp,10); 浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0 decimal表示小数点 ...
作者:不祥 bluejoe张贴于2006-11-10 16:42:10.0,共阅读4886次,回复4
vc2005 中 CString转化int,int 转化CString
 
CString转int方法: CString h; int a=_ttoi(h); int转化CString方法: int a=1263; CString h; h.Format(_T("%d"),a);
作者:junxi junxi张贴于2007-06-21 17:30:14.0,共阅读1728次,回复2
初学者请教个问题
 
刚学vc++,我新建了一个mfc,取名"冒泡程序",我如何在冒泡程序.cpp中添加 OnLButtonDown()函数呢?我没有使用vc++.net
作者:leryang leryang张贴于2008-03-10 21:30:09.0,共阅读364次,回复4
第一次使用
 
...第一次来不太会用这个,
作者:小忆 wjshuiyi张贴于2008-04-15 09:47:39.0,共阅读257次,回复0
最大公约数的求法
 
int mcd(int a, int b) { if( a <= 0 || b <= 0 ) return -1; int max,min; max = a > b ? a : b; min = a + b - max; int temp; //辗转相除 while( min ) { temp = min; min = max % min; max = temp; } return max; }
作者:不祥 bluejoe张贴于2004-02-20 23:47:58.0,共阅读3497次,回复6
C++ Primer(第4版)习题解答[2]
 
习题4.1 假设get_size是一个没有参数并返回int值的函数,下列哪些定义是非法的?为什么? unsigned buf_size = 1024 (a) int ia[buf_size]; (b) int ia[get_size()]; (c) int ia[4*7-14]; (d) char st[11] = "fundamental" ; 【解答】 (a)非法,buf_size是一个变量,不能用于定义数组的维数(维长度)。 (b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数(维长度)。 (d)非法,存放字符串"fundamental"的数组必须有12个元素,st只有11个元素。 习题4.2 下列数组的值是什么? string sa[10]; int ia[10]; int main(){ string sa2[10]; int ia2[10]; } 【解答】 sa和sa2为元素类型为string的数组,自动调用string类的默认构造函数将各元素初始化为空字符串;ia为在函数体外定义的内置数组,各元素初始化为0;ia2为在函数体内定义的内置数组,各元素未初始化,其值不确定。 习题4.3 下列哪些定义是错误的? (a) i ...
作者:白乔 bluejoe张贴于2008-02-19 13:33:40.0,共阅读611次,回复0
C++ Primer(第4版)习题解答
 
习题1.1 查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。 【解答】 一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。 习题1.2 修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运行程序,看看你的系统如何处理main函数的运行失败指示器。 【解答】 笔者所使用的Windows操作系统并不报告main函数的运行失败,因此,程序返回-1或返回0在运行效果上没有什么区别。但是,如果在DOS命令提示符方式下运行程序,然后再键入echo %ERRORLEVEL%命令,则系统会显示返回值-1。 习题1.3 编一个程序,在标准输出上打印“Hello, World”。 【解答】 #include<iostream> int main() { std::cout << "Hello, World" << std ...
作者:白乔 bluejoe张贴于2008-02-19 13:31:45.0,共阅读657次,回复0
指针参数是如何传递内存的?
 
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中, Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL, 为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100); // str 仍然为 NULL strcpy(str, "hello"); // 运行错误 } 示例7-4-1 试图用指针参数申请动态内存 高质量C++/C 编程指南,v 1.0 2001 Page 48 of 101 毛病出在函数GetMemory 中。编译器总是要为函数的每个参数制作临时副本,指针 参数p 的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p 的内容,就导致 参数p 的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p 申请 了新的内存,只是把_p 所指的内存地址改变了,但是p 丝毫未变。所以函数GetMemory 并不能输出任何东西。事实上,每执行一次GetMemory 就会泄露一块内存,因为没有用 free 释放内存。 如果非得要用指针参数去申请内存,那么应该改 ...
作者:wlx weilaixi张贴于2007-07-02 12:54:19.0,共阅读1250次,回复2
求助:八叉树源代码
 
...我想用八叉树对三维散乱点云进行分割然后精简,自己编了很久都没编出来,想问一下,大家谁有源代码啊,可不可以共享一下,谢谢。
作者:阿珂 likezhen821张贴于2007-12-10 23:24:10.0,共阅读504次,回复0
vc中操作Xml--使用CMarkup类
 
DotNet中使用xml相对比较轻松,在vc中操作xml,有些繁琐。最近在网络上得知CMarkup比较好用,于是试了下,还好,就把部分例子写出来。以后有时间的话,再写清楚点。 //----------UserInfo.xml-------------- <?xml version="1.0" encoding="UTF-8" ?> <UserInfo> <UserID>luo</UserID> <UserID>lin</UserID> </UserInfo> 1. 生成UserInfo.xml CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); xml.AddElem("UserInfo"); xml.IntoElem(); xml.AddElem("UserID","luo"); xml.AddElem("UserID","lin"); xml.OutOfElem(); xml.Save("UserInfo.xml"); 2. 浏览特定元素 //----查看所有UserID---- CMarkup xml; xml.Load("UserInfo.xml"); BOOL b ...
作者:不祥 bluejoe张贴于2006-11-10 16:44:04.0,共阅读5708次,回复7
三种常见中文内码的转换方法
 
转篇文章给你,很好用的,直接使用函数,不用设置简体繁体对照表 三种常见中文内码的转换方法   我们平时常见的三种中文内码是:GB2312(简体中文)、GBK、BIG5(繁体中文)。网上有很多中文内码的专用转换工具。我们碰到由于内码不一致而导致的乱麻问题,用这些工具可以进行相互转换。但论坛里经常有人问如何在自己的程序中集成这些功能呢?本文将介绍如何利用 Windows 提供的API 函数来实现。转换涉及到的 API 函数主要有两个:MultiByteToWideChar 和 WideCharToMultiByte。有关这两个函数的详细文档请参考 MSDN,本文不再赘述。   本文将介绍四个转换函数分别实现如下的转换: * Big5 => GBK * GBK => Big5 * GB2312 => GBK * GBK => GB2312   有关 GB2312 =〉BIG5 的转换以及 BIG5 =〉GB2312 的转换可以通过 GBK 间接实现。先将 GB2312 转成 GBK,再将 GBK 转成 BIG5,反之亦然。当然也可以自己实现它们之间的直接转换。 // Big5 => GBK: void BIG52GBK(char *szBuf) {   if(!strcmp(szBuf, ""))   ...
作者:edog bluejoe张贴于2007-01-29 10:38:34.0,共阅读2119次,回复1
Windows消息值列表
 
/* * Window Messages */ #define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #define WM_SIZE 0x0005 #define WM_ACTIVATE 0x0006 /* * WM_ACTIVATE state values */ #define WA_INACTIVE 0 #define WA_ACTIVE 1 #define WA_CLICKACTIVE 2 #define WM_SETFOCUS 0x0007 #define WM_KILLFOCUS 0x0008 #define WM_ENABLE 0x000A #d ...
作者:不祥 bluejoe张贴于2004-03-11 09:15:39.0,共阅读3676次,回复2
在MFC中应用CTreeCtrl控件的技巧
 
首先,我们要创建一个基本对话框的MFC工程MFC_TreeCRTL(名字随便给一个)。然后在资源视图中插入两个Dialog,ID分别为IDD_DIALOG11和IDD_DIALOG211,都更改Style属性为Child,Border属性为None,为它们建立两个类,分别命名为Cdialog11和Cdialog211,并在MFC_TreeCRTLDlg.CPP文件中包含dialog11.h和dialog211.h两个头文件。再导入几个资源图标作为树形控件节点的图标及装饰面板。最后在主面板上添加一个CTreeCtrl控件,ID为默认,并在ClassWizard中添加它的一个变量,命名为m_mytree。   接着,我们进行具体代码编写。   我们必须在CMFC_TreeCRTLDlg类中加入这些变量和函数 CDialog * m_treePages[2]; CString node_name; BOOL InitMytree();   我们还要在CMFC_TreeCRTLDlg类的构造函数中为m_treePages[2]分配空间, m_treePages[0]=new Cdialog11; m_treePages[1]=new Cdialog211; InitMytree()函数为m_mytree的初始化过程 BOOL CMFC_TreeCRTLDlg::Init ...
作者:不祥 qiaoyongbo张贴于2007-07-20 01:28:34.0,共阅读1667次,回复2
求助大牛……
 
。。。写一个程序,生成一个命令行方式的可执行文件count.exe,用于统计输出成绩小于给定分数的学生人数。该可执行文件可接受两个参数p1和p2。其中p1为文件名(含路径),包含各个学生的成绩,p2为一个整数,表示需要统计的分数值。例如: count.exe exam_result.txt 80 统计并输出exam_result.txt中所有成绩低于80分的人数。 Ps:定义Student类 class Student { string id; // 学号 string name; // 姓名 int mark; // 成绩 public: Student(const string &strID, const string &strName, int nMark = 0): id(strID), name(strName), mark(nMark) {} Student(const Student &st) : id(st.id), name(st.name), mark(st.mark) {} Student& operator = (const Student &st) { if (this != &st) { ...
作者:yaha deepsolo张贴于2007-09-03 18:51:12.0,共阅读531次,回复0
简单的错误
 
#include "sting.h" #include "stdafx.h" #include <stdio.h> void main( void ) { char string[80]; strcpy( string, "Hello world from " ); strcat( string, "strcpy " ); strcat( string, "and " ); strcat( string, "strcat!" ); printf( "String = %s\n", string ); } 编译后出现: E:\vcprogram\test1\test1.cpp(11) : error C2065: ’strcpy’ : undeclared identifier E:\vcprogram\test1\test1.cpp(12) : error C2065: ’strcat’ : undeclared identifier
作者:vcstudy study张贴于2007-07-27 15:42:04.0,共阅读679次,回复0
来了这,才知道自己是多么多么的菜
 
...多多指教 我用文件,和一维字符数组搞了一周还是没搞好,请用C++帮一下 4. 银行账户管理程序 问题描述 设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、单位、电话号码、地址等,允许用户进行如下操作:开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。 基本要求 程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。 测试数据 程序应输入不少于10人的账户信息,应考虑到人员同名的情况。 实现提示 可定义一个账户类存放账户信息以及执行相应的操作,可以用一个链表类来管理账户。 选作内容 在上述程序的基础上,添加联名账户(一个联名账户有两个拥有者)的管理 。 我破碎的代码是 开户 输入姓名 初始化账号,账号指向0,判断next, 输入所有信息 输入金额时调用存款 输出所有信息 将信息保存于文件中 销户 判断金额 跳至取款 删除整行 ...
作者:cheehwa cheehwa529张贴于2007-06-27 18:24:03.0,共阅读945次,回复0
简单的格式化时间代码
 
CString AnalysisTime(int h,int m,int s) { CString time; CString temp; temp=h<10?"0%d":"%d"; temp+=":"; temp+=m<10?"0%d":"%d"; temp+=":"; temp+=s<10?"0%d":"%d"; time.Format(temp,h,m,s); return time; } 也能格式化日期
作者:不祥 xler张贴于2004-05-11 17:30:39.0,共阅读3338次,回复2
字符串拆分CStringTokenizer
 
用以拆分字符串的类CStringTokenizer,使用示例: CStringTokenizer st; CStringArray terms; st.GetTokens(&terms, "我们 是 社会主义 接班人", " ");void CStringTokenizer::GetTokens(CStringArray * pTokens, CString sSource, CString sDelimiter) { pTokens->RemoveAll(); //开始解析 int nStart = 0; int nLen = sDelimiter.GetLength(); while(true) { int i = sSource.Find(sDelimiter, nStart); if(i < 0) break; if(i >= nStart) { CString s = sSource.Mid(nStart, i - nStart); pTokens->Add(s); } nStart = i + nLen; } //剩下的字符串 if(nStart <= sSource.GetLength()) pTokens->Add(sSource.Mi ...
作者:不祥 bluejoe张贴于2007-01-16 14:10:32.0,共阅读1755次,回复0
从文件路径中获取文件名等信息
 
从文件路径中(如:E:\projects\web\vcer\app\js\pageViewer.js)获取文件名等信息(如:pageViewer.js)获取文件的名字,Ext表明是否包含后缀 CString CUtil::GetFileTitleFromFileName(CString FileName, BOOL Ext) { int Where; Where = FileName.ReverseFind('\\'); if (Where == -1) Where = FileName.ReverseFind('/'); CString FileTitle = FileName.Right(FileName.GetLength() - 1 - Where); if (!Ext) { int Which = FileTitle.ReverseFind('.'); if (Which != -1) FileTitle = FileTitle.Left(Which); } return FileTitle; } 获取文件所在的路径: CString CUtil::GetFilePathFromFileName(CString FileName) { int Where; Where = FileName.Re ...
作者:不祥 bluejoe张贴于2006-12-20 15:46:49.0,共阅读3741次,回复1
虚拟键盘代码Virtual-Key Codes
 
The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. Virtual-Key Codes -------------------------------------------------------------------------------- The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. Constants VK_LBUTTON (01) Left mouse button VK_RBUTTON (02) Right mouse button VK_CANCEL (03) Control-break proce ...
作者:不祥 bluejoe张贴于2007-01-10 13:19:17.0,共阅读2862次,回复0

页次: 1/2页 记录总数37 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :