C++ 输入输出函数

要使用输入输出函数,首先要:

#include 
using namespace std;

C++使用一个预处理器,该程序在进行主编译之前对源文件进行处理,它处理以#开头的编译指令,不必执行任何特殊的操作来调用该预处理器,它会在编译程序时自动运行。
第一行是编译指令,它导致预处理器将iostream头文件的内容添加到程序中,iostream文件的内容随源代码文件的内容一起被发送给编译器。实际上,iostream文件的内容将取代程序中的第一行代码。
第二行是using编译指令,它使得名称空间std中的所有名称都可用,而不必每次使用时都加上std::前缀。
1、cout 输出
cout << “hello world.”;//打印引号内的信息(字符串)
cout << ‘s’;//打印字符s,可以用字符变量名直接代替
cout << string;//打印string变量所指的字符串
cout << a;//打印整数a的值
cout << "I have " << a << “apples.” << endl;//拼接输出一句话
cout 是个是个iostream文件中定义的ostream对象,<<是个插入运算符,它可以将右侧的信息插入到输出流中。
cout 很聪明,能够自动运算符后的数据类型,首先cout将a替换成当前值25,然后把值转换成合适的输出字符。比如整数a被存储为二进制,但是在打印之前,cout会将整数形式的数字转换为字符串形式。cout 的智能行为源自于C++的面向对象特性,实际上,C++插入运算符(<<)将根据其后的数据类型相应地调整其行为,这是一个运算符重载的例子。
换行:
cout << “\n”;
cout << endl;
2、cin 输入
cin >> a;//遇到空白(空格、制表符、换行符)会结束输入
cin >> a >> b;//可以连续输入两个数(空白隔开)
cin是个iostream文件中定义的istream对象,使用>>运算符从输入流中抽取字符,通常需要在运算符右侧提供一个变量,接收抽取的信息。cin可以智能地将通过键盘输入的一系列字符转换成接收信息的变量a能接受的形式。
输入字符串:
【1】cin >> name;//只能输入一个单词,如 li ming,实际上只输入了li到name数组中,而ming被留在输入队列中
【2】cin.getline(name,20) 每次读取一行,在读取指定数目的字符或者遇到换行符时自动停止读数,并且不保存换行符。在存储字符串时,以空字符来替换换行符。
例如:cin.getline(name,20);
第一个参数是用来存储输入行的数组的名称;第二个参数是要读取的字符数,如果这个参数是20,那么最多读取19个字符,余下一个空间用来存储自动在结尾处添加的空字符。
也有三个参数的情况,第三个参数是结束标志字符。
【3】cin.get(name,20);
读取一行输入,直到到达换行符,不丢弃换行符,而是将其留在输入队列中。
所以,第二次调用时看到的第一个字符便是换行符,因此get()认为已经到达行尾,而没有发现任何可读取的内容。为了跨越这个换行符,实现第二行的读取,可以加上一行
cin.get();
于是连续读取两行可以如下操作:

cin.get(name,20);
cin.get();
cin.get(address,30);

或者直接:
cin.get(name,20).get();

cin.getline(name,20).getline(adress,30);
【4】cin.get(ch); 或 ch=cin.get();
读取输入中的下一个字符,即使是空格
以上都是属于istream流。

3、string类输入方法

#include 

【1】getline(cin,str);
接收一个字符串,可以接收空格并输出,遇到换行符结束,并且不存储它。
可以自动调整目标string对象的大小,使其刚好能够存储输入的字符,无需指定读取多少个参数
【2】gets(str); 常与puts(str);搭配使用。
接收一个字符串,可以接收空格并输出;不存储换行符在缓冲区。
【3】ch = getchar(); 不能写成 getchar(ch);
接收一个字符,是C语言的函数。

需要注意的是:
比如输入
1 2
3 4
cin >> a >> b;//可以智能跳过空格分别把 1 2 读给a b;
如果再循环输入一次则会智能忽略换行把 3 4 读给 a b
如果输入
li ming
wang hong
cin >> name1;
而如果读了一行之后接着用cin.getline(name2,20)去读下一行则会有问题,会读到换行符,导致无法读到下一行有效数据,如果要读下一行则需要cin.get()跳过换行

你可能感兴趣的:(C++笔记,c++,字符串)