c学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
针对vs的一些问题
1、VS2013中使用fopen、sprintf等函数是会出现安全问题:
error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
而报错。
解决方法:右键工程名-->属性-->C/C++-->预处理器-->预处理器定义,编辑右边输入框加入:_CRT_SECURE_NO_WARNINGS
保存。
2、不能从const char *转换为LPCWSTR
在VC 6.0中编译成功的项目在VS2005 vs2005、vs2008、vs2010中常会出现类型错误。
经常出现的错误是:不能从const char *转换为LPCWSTR
如使用MessageBox(hwnd,"TEST",NULL,0)就会报错,如果使用强制转换(LPCWSTR)"TEST",虽然能够通过,但是编码会出错。
可行的办法是使用_T("TEST")转换,或者TEXT("TEST" )都可以
MessageBox(hwnd,TEXT("TEST"),NULL,0);
MessageBox(hwnd,_T("TEST"),NULL,0);
或者强制使用ANSI字符MessageBoxA(hwnd,"TEST",NULL,0);
另一种方法是:项目菜单——项目属性(最后一个)——配置属性——常规——项目默认值——字符集,将使用Unicode字符集改为未设置即可。
3、设置当前操作的项目为默认启动项
右击解决方案-》通用属性–》启动项目-》当前选定内容。
4、在vs2013中出现错误:未定义标识符ULONG_PTR,BOOL,DWORD,LPCTSTR,HWND等在文件头部增加:include头文件WinDef.h eg: #include
5、vs2012下用MFC编程,用CString定义一个对象,m_strLine,希望实现在onChar消息下实现键盘输入一个字符串,就把它加入到m_strLine中,写如下代码
m_strLine += nChar; 会报错;运算符与操作数类型不匹配
因为nChar是UNIT类型的,而m_strLine是CString类型的,不同类型的不能进行加减、赋值等操作,需要改成
m_strLine += (char)nChar;
6、vs2012删除某个成员函数(不是物理删除就是注释掉而已)
右键点击该成员函数所属的类,选择类向导,在弹出的对话框中选中该成员函数,点击删除处理程序即可达到在成员函数的前面添加注释的效果;
Vs快捷键
Ctrl+K,C: 注释选定内容
Ctrl+K,U: 取消选定注释内容
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行在此处键入公式。
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
Shift+Alt+Enter: 切换全屏编辑
智能提示:ctrl + J
方法参数提示:ctrl + shift +空格
Ctrl+F5: 开始执行(不调试)
F9: 切换断点
Ctrl+Shift+F9: 删除全部断点
关闭VS2013中单击打开文件的功能
中文版:
工具--》选项--》环境--》选项卡和窗口--》预览选项卡
去掉“在解决方案资源管理器中预览选定的文件(在按住Alt的同时单击可避免预览)(X)”的勾选
C++中的模板
类模板
1、先建立一个Arry.h的头文件
2、在头文件中写入固定格式
#ifndef ARRY_H
#define ARRY_H
…code…
#endif
3、在上一步的code地方创建类模板
template
class Array
{
public:
Array(int size);//构造函数
bool push(T elem);//放入值
void display();//显示函数private:
T *m_pArr;
int m_iSize;
int m_iLength;
};
4、实现构造函数Array();
template
Array
{
m_iSize = size;
m_iLength = 0;
m_pArr = new T[m_iSize];
}
5、实现成员方法push();
template
bool Array
{
if (m_iLength >= m_iSize)
{
return false;
}
m_pArr[m_iLength] = elem;
m_iLength++;
return true;
}
6、实现成员方法display();
template
void Array
{
for (int i = 0; i < m_iLength; i++)
{
cout< } } 7、创建实例化的主函数入口文件 #include #include "Arry.h"