c++练习中遇到的问题和解决
2013-11-02 14:31
281 查看
1. c++ 字符串头文件的问题
#include <iostream.h>
#include <string.h>
string st("test string");
error C2065: 'string' : undeclared identifier
解释:
#include <string>
using namespace std;
因为在using namespace std; 情况下,
#include <string> 是使用C++ string 类库;
#include <cstring>是使用C 的string 操作库函数 ...
细节在于加不加“.h”
#include <iostream.h>
#include <string>
using namespace std;
没有错!!
而
#include <iostream.h>
#include <string.h>
using namespace std;
编译有错!!
解释
“string.h“这个头文件是“旧式c头文件”,而这个文件中没有定义string类(这点应该不奇怪,c语言中哪有什么类啊),这个头文件里面是有关“旧式char-based字符串”的操作函数,注意都是操作char*字符串的“函数”,所以你引用这个头文件,编译器肯定找不到“string”了。
“string”这个头文件(没有扩展名)是C++标准化之后的C++头文件,里面才有string类的相关定义(其实,string并不是类,是一个typedef,但是使用的时候不用去管他),而C++标准头文件中的东西都放在namespace std中了,所以使用的时候要“using namespace std”。
附:建议不要用"iostream.h",改成“iostream”,因为标准已经明确规定不在支持"iostream.h"这种头文件了。
二 . 多文件连编译的问题
1.一个需要把头文件条件宏写上
#ifndef ...
#define ...
....
#endif
2. 如果你是直接在编译中把文件添加进去而没有以添加文件的方式时(此种方式相当于makefile的功能,把几个文件之间的编译关系联系起来),请用添加工程的方式,在重新创建一个工程,在里面添加文件的方式,来添加,或者如果你会有make,那么可以通过查找make/makefile的方式,用make工具来进行编译
#include <iostream.h>
#include <string.h>
string st("test string");
error C2065: 'string' : undeclared identifier
解释:
#include <string>
using namespace std;
因为在using namespace std; 情况下,
#include <string> 是使用C++ string 类库;
#include <cstring>是使用C 的string 操作库函数 ...
细节在于加不加“.h”
#include <iostream.h>
#include <string>
using namespace std;
没有错!!
而
#include <iostream.h>
#include <string.h>
using namespace std;
编译有错!!
解释
“string.h“这个头文件是“旧式c头文件”,而这个文件中没有定义string类(这点应该不奇怪,c语言中哪有什么类啊),这个头文件里面是有关“旧式char-based字符串”的操作函数,注意都是操作char*字符串的“函数”,所以你引用这个头文件,编译器肯定找不到“string”了。
“string”这个头文件(没有扩展名)是C++标准化之后的C++头文件,里面才有string类的相关定义(其实,string并不是类,是一个typedef,但是使用的时候不用去管他),而C++标准头文件中的东西都放在namespace std中了,所以使用的时候要“using namespace std”。
附:建议不要用"iostream.h",改成“iostream”,因为标准已经明确规定不在支持"iostream.h"这种头文件了。
二 . 多文件连编译的问题
1.一个需要把头文件条件宏写上
#ifndef ...
#define ...
....
#endif
2. 如果你是直接在编译中把文件添加进去而没有以添加文件的方式时(此种方式相当于makefile的功能,把几个文件之间的编译关系联系起来),请用添加工程的方式,在重新创建一个工程,在里面添加文件的方式,来添加,或者如果你会有make,那么可以通过查找make/makefile的方式,用make工具来进行编译
相关文章推荐
- 关于指针的一些事情
- Aut2Exe编译au3脚本为可执行文件
- Chrome Visual Studio 2005下的编译过程
- android的编译和运行过程深入分析
- C/C++数据对齐详细解析
- C++中引用的使用总结
- C++中引用(&)的用法与应用实例分析
- 解析C++ 浮点数的格式化输出
- 深入分析C++中几个最不常用的关键字
- c++中inline的用法分析
- 深入解析C++ Data Member内存布局
- 从汇编看c++中默认构造函数的使用分析
- 关于C++中的友元函数的一些总结
- C++的sstream标准库详细介绍
- 基于C++自动化编译工具的使用详解
- 浅谈C++中的string 类型占几个字节
- C/C++ 宏详细解析
- 深入分析C++中两个大数相乘结果不正确的问题
- 探讨C++中数组名与指针的用法比较分析
- 深入解析C++中的引用类型