我是靠谱客的博主 快乐便当,最近开发中收集的这篇文章主要介绍《C++Primer4》附录-标准库io库的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、输出为bool类型格式为true和false,需要使用cout<< boolalpha, 取消bool字母格式输出使用  cout<<noboolalpha,

2、将整型int i = 10,按各种进制输出的格式如下:

八进制输出: cout<<oct<<i <<endl , 十六进制输出: cout<<hex<<i  <<endl; 十进制输出: cout<<dec<< i <<endl;(十进制为默认输出)

如果输出需要带上标记(0, 0x),需要声明为 cout << showbase << hex << i <<endl;  cout<< noshowbase <<endl;  //  0xa

如果标记大写,则 写为   cout<<uppercase << hex << i << endl << nouppercase <<endl;

3、 cout .precision() 返回当前精度,  cout.setpricision(12) 将当前精度设置为12位(整个浮点型数字不包括小数点)。 需要包含 #include<iomanip> 头文件。

4、采用科学计数法输出,需要声明为 cout<< scientific , 对齐则声明为 cout<<fixed, 取消这些格式还原默认的格式输出 需要调用  cout.unsetf(ostream::floatfield);

5、强制显示小数点 声明为  cout << showpointer << i; // 默认精度为6, 取消显示小数点格式:  cout << noshowpointer << i << endl;

6、填充输出用法:

#include <iomanip>
#include <iostream>
using namespace std;
void set_fill_usage()
{
int i = -16;
double d = 3.14159;
//默认右边对齐
cout<<"i: "<<setw(12)<<i<<"next col"<<endl;
cout<<"d: "<<setw(12)<<d<<"next col"<<endl;
//靠左边对齐
cout<<left;
cout<<"i: "<<setw(12)<<i<<"next col"<<endl;
cout<<"d: "<<setw(12)<<d<<"next col"<<endl;
//靠右边对齐
cout<<right;
cout<<"i: "<<setw(12)<<i<<"next col"<<endl;
cout<<"d: "<<setw(12)<<d<<"next col"<<endl;
//负数符号靠左,数字靠右
cout<<internal;
cout<<"i: "<<setw(12)<<i<<"next col"<<endl;
cout<<"d: "<<setw(12)<<d<<"next col"<<endl;
//空格位置以#填充
cout<<setfill('#');
cout<<"i: "<<setw(12)<<i<<"next col"<<endl;
cout<<"d: "<<setw(12)<<d<<"next col"<<endl;
//恢复以空格填充
cout<<setfill(' ');
}

7、默认情况下,输入操作符忽略空白,制表符,换行符,进纸和回车, 如果想要不忽略这些,需要声明cin<<noskipws, 恢复默认的忽略声明为 cin << skipws。

void
skipws_usage()
{
char ch;
cin >> noskipws;
while (cin >> ch)
{
if (ch != '#')
{
cout<< ch;
}
else
break;
}
cin>> skipws;
}

8、利用seekg,seekp,tellg等函数访问文件copyOut.txt,将文件中每行最后的位置输出到最后一行

abcd

efg

hi

j

代码:

int fstream_access_file_usage()
{
fstream inOut("copyOut.txt", fstream::ate | fstream::in | fstream:: out); //fstream::ate
means fixed at the end of the file
if (!inOut)
{
cerr<<"ERROR! Unable to open file" <<endl;
return EXIT_FAILURE;
}
ifstream::pos_type end_mark = inOut.tellg();
inOut.seekg(0, fstream::beg);
int cnt = 0;
string line;
while (inOut && inOut.tellg() != end_mark && getline(inOut, line))
{
cnt+=line.size()+1;
ifstream::pos_type mark = inOut.tellg();
inOut.seekp(0, fstream::end);
inOut<< cnt;
if (mark != end_mark)
{
inOut<< " ";
}
inOut.seekg(mark);
}
inOut.clear();
inOut.seekp(0, fstream::end);
inOut<<"n";
return 0;
}

测试效果:

abcd
efg
hi
j
5 9 12 14



最后

以上就是快乐便当为你收集整理的《C++Primer4》附录-标准库io库的使用的全部内容,希望文章能够帮你解决《C++Primer4》附录-标准库io库的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部