c++的输入与输出
一.输入和输出的基本介绍
在头文件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;
}
文章很短请耐心看完,是不是应该给我点个赞呢
如果有什么写错的地方请提出来,我及时改正
更多推荐



所有评论(0)