C++与C的区别(二)
基本的输入和输出
在C语言中采用函数实现输入输出(如scanf()和printf()函数),而C++采用类对象来实现输入输出(如cin,cout)。
在C++中由于iostream就是通用输入输出流和其他输入输出流的基类,所以在做基本的输入和输出需要包含头文件iostream,而cin就是输入对象,cout就是输出对象。(有关类、对象以及流的概念会在后续更新)
注意:在做输入输出的过程中C++支持C语言的格式控制字符
这里举一个简单的例子:
#include<iostream>
using namespace std;/*这里利用using语法加命名空间
指明cout和cin在哪里的命名空间也就是std*/
int main()
{
char str[];
cout<<"My name is qi jiu";/*这里用到的<<左移运算符实际
做了运算符重载所以输出字符串My name is qi jiu;*/
cin>>str;//此处用到的右移运算符>>也是运算符重载输入字符
return 0;
}
运算符重载也会后续更新,目前只需要知道std::cout<<做基本输出,std::cin>>做基本输入就可以了
下面强调两个在做基本输入时会遇到的小问题:
1、输入时遇到的问题
(1)字符串输入空格问题例子:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char str[10];
cin>>str;//这里输入I Love You
cout<<str;//打印出来的却只有I,因为在输入时我们做了空格输入
/*所以带空格的输入需要我们以调用成员函数getline()的方式去解决*/
cin.getline(str,10);//这样就可以接收空格输入
//在C中可以用gets_s();做输入也行也接收空格输入
cout.write(str,10);//与之对应的输出成员函数
/*在C++中string类型中也有getline()函数,它的用法是需要输入
cin 和 string 类型的变量;*/
string name;
getline(cin,name);//注意两个用法的区别
return 0;
}
(2)字符和字符串输入前做了输入
#include<iostream>
using namespace std;
int main()
{
char str[10];
cin>>str;//这里依旧输入I Love You
cout<<str;
//while(getchar!='\n');
char c;
cin >> c;//此处我们再次做输入操作
cout << c;//输出的却是L,并且程序只做了一次输入没有做二次输入
/*首先空格是字符里面的间隔,其次在做第一次输入的时候I Love You已经存在缓冲区了,所以需要有一个清空缓冲区的操作。while(getchar!='\n');
字符和字符串输入前做了输入就要先做一个清空缓冲区的动作*/
2.标准输入输出流的控制符
需要注意的是一旦用到这些控制符,需加头文件iomanip。