ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.2基本输入/输出流(iostream)

2021-11-01 15:32:22  阅读:316  来源: 互联网

标签:输出 iostream cout 文件 int 2.2 fin 输入


标准的输入和输出对象

iostream类库定义了4个最基本的输入/输出对象
cin:标准输入,即键盘输入
cout:标准输出,即屏幕输出
cerr:处理标准的错误,典型情况下用于生成警告或错误消息
clog:生成程序的执行信息
<<插入符, >>提取符
cout屏幕输出

cout<<1;        // 向输出对象中插入数值1
 cout<<"Hello World!";    // 向输出对象中插入字符串“Hello World!”
 cout<<"1 + 2 = "<<1+2;   // 向输出对象中插入字符串“1 + 2 =”以及1+2的计算结果
用cin提取键盘输入
// 定义两个变量用于保存用户输入数据的变量
int nAge; 
string strName; // 从输入对象cin中提取用户输入的整数数据和字符串数据,
// cin提取用户输入的信息分别保存到nAge和strName变量中
cin>>nAge>>strName;  

输入与输出配合使用示例:

#include "stdafx.h" // 引入定义输入/输出流对象的头文件
#include <iostream> // 引入std名字空间
using namespace std; 
int _tmain(int argc, _TCHAR* argv[])
 {     
 // 在屏幕上输出提示信息    
cout<< "请输入两个整数:" <<endl;     
int v1, v2;     // 从输入对象提取用户输入的整数    
cin>> v1 >> v2;     // 将计算结果输出到屏幕    
cout<< "两个整数" << v1 << "和" << v2 << "的和是" << v1 + v2 <<endl;     
return 0; 
  } 

运行结果
运行结果
其中endl是操纵符,输出换行符,并且刷新输出缓冲器,确保用户立即看到已经插入输出流的信息。

输出格式控制

为了控制输出流格式,C++提供了很多操纵符。这些操纵符可以直接插入输出流中以控制输出格式,它们都定义在头文件iomanip中,使用这些操纵符,需要先使用预编译指令#include引入这个头文件。
常用的输出流格式操纵符:

操纵符作用
dec采用十进制表示数值数据
hex采用十六进制表示数值数据
oct采用八进制表示数值数据
endl插入换行符,并刷新流
setprecision(int)设置浮点数的精度,精度是浮点数中所有包括小数点前后的十进制数字的个数
setw(int)设置输出流中两个数据显示的间隔宽度
setioflags输出流的默认对齐方式为文本右对齐,程序中可以用setiosflags和resetiosflags操纵符重设对齐方式

例1:要求显示浮点数1.23456小数点后两位有效数字,然后换行,可以用如下的语句cout<<fixed<<setprecision(2)<<1.23456<<endl;
首先向cout对象插入一个fixed操纵符,让它以普通的小数计数法输出,否则它将以科学计数法输出浮点数;然后,通过setprecision()设置需要保留的有效数字位数,这样就可以达到对输出格式的要求了。
例2:对字符串格式进行控制
格式控制转义字符:"\n"表示换行;"\t"表示间隔一个Tab的距离
换行显示:cout<<"分多行\n显示一个字符串"<<endl

读/写文件

头文件定义:ofstream和ifstream数据输出和输入

#include "stdafx.h" 
#include <iostream> 
// 引入输入/输出文件流对象需要的头文件
#include <fstream> 

using namespace std;
// 主函数
int _tmain(int argc, _TCHAR* argv[])
{
	int nYear, nMonth, nDate;	            // 定义变量,保存程序中的数据
	ifstream fin("Date.txt");               // 尝试打开Date.txt文件,并将其连接到输入文件流fin 
	if (!fin.bad())                         // 如果成功打开Date.txt文件,则从文件中读取内容 
	{      
		fin.ignore(256, '\n');              // 忽略文件中第1行的提示信息  
		fin >> nYear >> nMonth >> nDate;	// 用提取符“>>”从文件输入流fin中读取记录的数据,并保存到相应的变量         
		cout << "文件中的日期是" << nYear << "-" << nMonth << "-" << nDate << endl;	// 将数据显示到屏幕  
		fin.close();
	}
	else
	{
		cout << "无法打开文件并进行读取" << endl;
	}    
	cout<<"请输入当前日期(年月日):"<<endl;    // 提示用户输入新的数据并将其写入文件 
	cin>>nYear>>nMonth>>nDate;     // 从用户屏幕获取用户的键盘输入并保存到相应的变量中    
	ofstream fout("Date.txt");	   // 尝试打开文件Date.txt,并将其连接到输出文件流fout中         
	if (!fout.bad())               // 如果成功打开Date.txt文件,则将用户输入的数据写入文件
	{// 利用插入符“<<”将数据写入文件输出流fout中,也就是将数据写入文件中        
		fout<<"用户输入的当前日期是:\n" 
			<<nYear<<" "<<nMonth<<" "<<nDate;       //写入的内容    
		fout.close();  // 写入完成后,关闭文件   
	}    
	else     
	{         // 如果无法打开文件,则提示用户信息        
		cout<<"无法打开文件并进行写入"<<endl;    
	}    
	return 0; 
} 

结果在这里插入图片描述

fin

fin.ignore(256, '\n'); // 忽略文件中第1行的提示信息默认情况下,fin总是从文件的开始部分进行读取的,为了直接读取第2行的内容,可以使用“fin.ignore(256,’\n’);”忽略第1行的内容,将读取位置跳转到第2行。然后,通过提取符“>>”将第2行用空格分割的三个数据分别提取并保存到三个变量中.

fout

为将数据写入文件,创建一个输出文件流的对象fout,然后通过它的构造函数或open()函数来打开一个文件,用插入符**<<**将数据插入fout对象

除上述读写,C++所提供的fstream还可以读/写二进制文件,甚至可以重新定义“<<”和“>>”,实现特殊的读/写操作。

标签:输出,iostream,cout,文件,int,2.2,fin,输入
来源: https://blog.csdn.net/weixin_43657369/article/details/121079603

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有