随笔分类 -  C/C++

学习札记: C++指向字符数组的指针
摘要:1.数组名是第一个元素的地址;2.指针保存的是另一个对象的地址;3.cout对象认为char的地址是字符串的地址,如果给cout提供一个字符的地址,则它将从该字符开始打印,直至遇到空字符为止;4.用引号括起来的字符串像数组名一样,也是第一个元素的地址;记住:在cout和多数C++表达式中,char数组名、指向char的指针以及用引号括起来的字符串常量都被解释为字符串第一个字符的地址.5.无法使用string对象初始化char指针,但是string类提供了一个名为c_str的成员函数,以实现此要求;6. 可以使用指向char数组的指针,构造string对象,有不同的版本;7.使用一种容器的一对迭 阅读全文
posted @ 2012-12-09 11:54 seventhsaint 阅读(405) 评论(0) 推荐(0)
学习札记:cin.clear(istream::failbit)
摘要:C++ Primer 上有如下例子int ival; while(cin>>ival,!cin.eof()){ if(cin.bad()){ throw runtime_error("IO stream corrupted"); } if(cin.fail()){ cerr<<"bad data,try again"<<endl; cin.clear(istream::failbit); } }若输入2.1,会进入死循环。究其原因,是编译器VS 2005不能正确支持cin.clear(istream::failbit) 阅读全文
posted @ 2012-11-18 23:37 seventhsaint 阅读(393) 评论(0) 推荐(0)
学习札记: C++指向函数的指针
摘要:1. 函数指针两侧的圆括号不可少,2. 在引用函数名,但又没有调用该函数时,函数名将被自动解释为指向函数的指针。3. 直接引用函数名等效于在函数名上应用取地址操作符.4. 可以不需要使用解引用操作符,直接指针调用函数;5. 允许将形参定义为函数类型,但函数的返回类型则必须是指向函数的指针,而不能是函数。示例:#include <iostream> using namespace std; typedef int (*pFUN)(int , int ); //typedef int (*pFUN)(int a, int b); int Max(int a, int b){ retur 阅读全文
posted @ 2012-11-18 12:38 seventhsaint 阅读(258) 评论(0) 推荐(0)
C++ typedef用法详解
摘要:转自http://wenku.baidu.com/view/733ee308581b6bd97f19ead0.html,经过整理typedef的语法描述在现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和 double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int、float和double为系统关键字,不可以修改。为 了解决用户自定义数据类型名称的需求,C语言中引入类型重定义语句typedef,可以为数据类型定义新的类型名称,从而丰富数据类型所包含的属性信息。typedef的语法描述 typedef 类型名称 类型标识符 阅读全文
posted @ 2012-11-18 09:49 seventhsaint 阅读(38048) 评论(1) 推荐(12)
如何利用Mathematica调用C编写的函数
摘要:如何利用Mathematica调用C编写的函数[使用范围]Windows XP SP2; Mathematica 6.0; 传递变量类型简单的函数[方法]1.用C语言写好函数,如double f(double x,double y){return x*y;}2.找到路径C:\Program Files\Wolfram Research\Mathematica\6.0\SystemFiles\Links\MathLink\DeveloperKit\Windows\MathLinkExamples\addtwo或相应安装目录下的addtwo.c以及addtwo.tm两个文件拷贝到某个自己的文件夹中 阅读全文
posted @ 2012-11-14 10:30 seventhsaint 阅读(565) 评论(0) 推荐(0)
C++使用system带参数调用exe
摘要:sum.exe是一个求和函数,在命令行下输入sum a b,输出a和b的和,其代码如下://sum.cpp #include <iostream> using namespace std; int main(int argc,char *argv[]) { if(argc!=3){ cout<<"you should use three arguments"<<endl; return -1; } cout<<"The sum of "<<argv[1]<<" and &q 阅读全文
posted @ 2012-11-12 23:18 seventhsaint 阅读(955) 评论(0) 推荐(0)
C++的atof()
摘要:atof 是ascII to float的缩写,它将ascII字符串转换为相应的单精度浮点数,比如传入"1.234",经过处理后就返回float类型的数1.234 。类似的还有atoi 、atol、itoa、ftoa等等。示例程序,主函数使用两个值作为实参,并输出和。#include <iostream> using namespace std; int main(int argc,char *argv[]) { if(argc!=3){ cout<<"you should use three arguments"<< 阅读全文
posted @ 2012-11-12 21:56 seventhsaint 阅读(690) 评论(0) 推荐(0)
有关cin.fail,cin.clear,cin.sync的应用
摘要:转自:http://blog.gishome.org/post-73.html/*有关cin.fail(),cin.clear(),cin.sync()的应用*/这个例子可以让我们了解c++中输入操作符cin的一些缓冲问题/*************************************************************************//*int a;cout<<"输入一个字母:"<<endl;cin>>a; //我们用键盘输入一个char字母,而不是输入int。这时int型变量中放了char型数据,发生 阅读全文
posted @ 2012-11-09 16:39 seventhsaint 阅读(853) 评论(0) 推荐(0)
cin.get,cin.clear以及cin.sync
摘要:按:此文介绍了cin.get(),cin.clear()以及cin.sync的用法,讲解了cin缓冲区,转自http://blog.gishome.org/post-72.html第一次搞cin,真是搞昏人了,现在逐渐开始明白是什么东东,一起探讨一下吧!首先大家要知道cin是怎么一回事,为什么要有?在C中,输入输出要用printf和scanf,这是2个很麻烦的东西,因为在输入数据的同时还要说明数据的类型,如果输入数据较多,那就很麻烦了,所以我们的C++搞了两个更爽的东西cout和cin,来替换它们.首先我们先了解一下这两个东西的来处,它们是来自C++的一个类库叫 " iostream 阅读全文
posted @ 2012-11-09 16:36 seventhsaint 阅读(263) 评论(0) 推荐(0)
C++ 文件结束符
摘要:问题描述:windows下int main(){ string str; while(cin>>str); cout<<"\n"<<"end"<<endl;}控制台输入多个字符串后,输入文件结束符crtl-Z,并未使while循环结束,该如何跳出while循环?解决方法:方法1:回车 - ctrl-z - 回车 方法2:改代码,设置自己的文件结束符String a;while((cin>> a)&&a!='X')X可以为自己设置的文件结束符。原因解析:当从键盘输入 阅读全文
posted @ 2012-11-09 13:07 seventhsaint 阅读(791) 评论(0) 推荐(0)
cin.get()、流和缓冲区
摘要:转自:http://blog.csdn.net/mlyboy/article/details/5371765虽然说C++ Primer Plus的前7章差不多都是重述C语言的知识,但这并不代表你懂得点C语言就可以忽略这些内容,直接从OOP开始学!和输入和输出有关的缓冲区操作便是一个非常重要但又特别容易被我们这些C++菜鸟所忽视的内容,我在写C++ Primer Plus编程练习时出现的绝大多数bug都和它有关。 对于我这样从BASIC学到VB再学到C的人来说,想弄明白缓冲区是个什么东西还真不是一时半会的事,因为在BASIC和C中根本没有缓冲区的概念。好,现在先看一个小程序。[cpp] view 阅读全文
posted @ 2012-11-09 12:33 seventhsaint 阅读(295) 评论(0) 推荐(0)
Visual Studio Command Window
摘要:命令窗口用于直接在 Visual Studio 集成开发环境 (IDE) 中执行命令或别名。可以执行菜单命令和不在任何菜单上显示的命令。1 调用命令窗口:若要显示“命令”窗口,请从“视图”菜单中选择“其他窗口”,再选择“命令窗口”。2 Visual Studio 2005 提供的预定义别名的列表命令名别名完整名称打印?Debug.Print快速监视 ??Debug.Quickwatch添加新项目AddProjFile.AddNewProject别名 AliasTools.Alias“自动”窗口Autos调试.自动窗口“断点”窗口bl调试.断点切换断点bpDebug.ToggleBreakPoi 阅读全文
posted @ 2012-11-03 22:36 seventhsaint 阅读(1478) 评论(0) 推荐(0)
C/C++编译器-cl.exe的命令选项
摘要:和在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰。本文将介绍微软C/C++编译器命令行模式设定和用法。1、设置环境变量:PATH=C:/Program Files/Microsoft Visual Studio 8/VC/binINCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/includeLIB=C:/Program Files/Microsoft Visual Studio 8/VC/lib如果提示找不到mspdb80.dll文件,则从C:/Program Files/Microsoft Vi 阅读全文
posted @ 2012-11-03 21:34 seventhsaint 阅读(626) 评论(0) 推荐(0)