1、基本数据类型
(1)整形int
(2)浮点型float
(3)字符型char
(4)布尔型boolean
2、扩展数据类型
(1)、字符串string
(2)、复数complexnumber
(3)、向量vector
(4)、列表list
例子:
1、为了使用string类型,必须包含头文件:
#include <string>
string str = "hello, world!";
2、为了使用向量类型,必须包含头文件:
#include <vector>
vector<string> content(20); //content是个向量,包含有20个字符串类型的元素。
vector<string>这是种特殊的语法,指示编译器创建一个能够存放字符串元素的向量。
要定义一个存放20个整数的向量,可以这样写:
vector<int> num(20);
3、预处理器指示符
预处理器指示符“#”放在程序的开头,处理这些指示符的程序被称为预处理器(通常捆绑在编译器中)。
#include 包含文件的两种格式:
#include <some_file.h> //表明是一个工程文件或标准头文件
#include "file.h" //表明文件是用户提供的
被包含的文件含有#include指示符,由于嵌套原因,一个头文件可能多次被包含在代码中,条件指示符可以防止这种头文件的重复处理:
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
/* Bookstore.h 文件的内容 */
#endif
#ifndef指示符用来判断一个预处理器常量是否被定义,以便有条件的包含程序代码。
编译c++时,编译器自动定义一个预处理名字__cplusplus,因此我们可以根据它来判断是否是c++程序,以便有条件的包含一些代码:
#ifdef __cplusplus
//我们要编译c++
extern "C";
#enfif
在编译标准C时,编译器自动定义名字__STDC__,当然__cplusplus和__STDC__不会同时被定义。
__FILE__包含正在被编译文件的名字,__LINE__记录文件已经被编译的行数。
if (count == 0)
cerr << "error,file:" << __FILE__ << " line:" << __LINE__;
assert()是C语言标准库提供的一个通用预处理器宏,在代码中利用assert()来判断一个必需的前提条件,确保程序被正确执行。
使用assert()必须包含头文件:
#include <assert.h>
assert(file != 0); //测试file是否等于0,条件为假时断言失败,程序输出诊断信息,然后终止。
4、输入输出初步
c++输出/输出功能由输入/输出流iostream库提供。
标准输入与预定义对象cin绑定,标准输出与预定义对象cout绑定,标准错误与对象cerr绑定。
想使用iostream,必须包含头文件:
#include <iostream>
输入操作符>>,输出操作符<<。
while (cin >> word) //在while循环中,每次读入一个字符,直到所有的串都读进来。
文件的输入和输出:
iostream库也提供文件的输入和输出,为了打开一个文件供输入或输出,必须包含头文件:
#include <fstream>
为了打开一个输出文件,必须声明一个ofstream类型的对象:
ofstream outfile("1.txt");
测试是否成功打开,可以这样写:
if (!outfile) //如果不能打开,值为flase
cerr << "打开文件失败!";
为了打开一个供输入,必须声明一个ifstream类型的对象:
ifstream infile("2.txt");
一个完整的例子:
将1.txt内容读取,写入到2.txt中。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream file2("2.txt");
ifstream file1("1.txt");
if (!file2 || !file1) {
cerr << "打开文件失败!";
return -1;
}
string line;
while (file1 >> line)
file2 << line << endl;
return 0;
}