一.输入和输出的基本介绍

在头文件iostream中定义有两个流类:输入流类istream和输出流类ostream,且用这两个类定义了流对象cin和cout:

istream cin

ostream cout

cin是一个istream类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过流提取符“>>”从流中提取数据。流提取符“>>”从流中提取数据时通常跳过输人流中的空格、tab键、换行符等空白字符,而getline可以识别输入的空格,换行,tab,注意区分。注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓冲区,形成输入流,提取运算符“>>”才能从中提取数据。注意保证从流中读取数据能正常进行。

cout是一个ostream类的对象,它有一个成员运算函数operator<<,每次调用的时候就会向输出设备输出。operator用运算符重载,可以接受不同类型的数据,如整型、浮点型、字符串甚至指针,等等。cout是标准输出设备,一般输出到屏幕

二.那c++的cout/cin与c的printf/scanf有什么区别呢?为什么那些大佬们喜欢用printf/scanf呢?

1.性质不一样

cin是标准化输入,包含在头文件<iostream>中。

scanf是格式化输入,包含在头文件<stdio.h>中。

2.效率不一样

cin先把要输入的东西存入缓冲区,再输入,导致的输入操作效率稍低,但书写简便。(效率低但简单)

scanf的是用指针把要输入的东西输入的,输入效率比较高,但是写代码麻烦。(效率高但麻烦)

3.取数据不同

cin的取数据时会忽略空格和回车继续输入。

scanf取数据时遇到回车、空格、TAB就会停止。

三.基本的输出函数介绍

1、cin.get()(get())

cin.get(字符变量名)可以用来接收字符

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
2、cin.getline(接收字符串的变量,接收字符个数,结束字符)(getline())

用法:接收一个字符串,可以接收空格并输出

四.文件的输入输出

1.infile,outfile

//我采用函数三件套的方式写

#include<bits/stdc++.h>

using namespace std;

int a,b,c;  //全局变量

void ParseIn(){
    ifstream infile;  
    infile.open("a.in");      //注意文件的路径  
    infile >> a >> b;         //两行数据可以连续读出到变量里  
    infile.close()  
}

void Core(){
    c = a + b;
}

void WriteOut(){
    ofstream outfile;  
    outfile.open("a.out"); //a.out是存放结果的文件名  
    outfile << c;
    outfile.close();

}

int main(){
    ParseIn();
    Core();
    WriteOut();
    return 0;
 }  

如果嫌麻烦的话可以使用freopen()函数

方法如下

#include<bits/stdc++.h>

using namespace std;

int main(){
    freopen("a.in","r",stdin);   //输入重定向,输入数据将从a.in文件中读取
    freopen("a.out","w",stdout); //输出重定向,输出数据将保存out.txt文件中 
    int a,b,c;
    cin >> a >> b;
    c = a + b;
    cout << c;
    return 0;
}

文章很短请耐心看完,是不是应该给我点个赞呢

如果有什么写错的地方请提出来,我及时改正

更多推荐