目录
格式化输出
要格式化数据,我们可以使用转义字符串(Escape Sequence)也称字符实体(Character Entity)。这些不需要任何额外的库。
C ++ 转义字符串 与 其他语言非常相似。最常见的是:\ n - 换行符\ t - 制表符。如图
我们还可以使用 iomanip库 格式化输出(如图),包括作为哈希标记包括 iomanip库 并将其放在括号中,因为它存储在标准库位置。旦包含后,您可以使用此库格式化输出。例如,我们可以使用 setw 命令设置输出的宽度。我已经设置了10个空格的宽度。
例如,此语句标准 cout ints设置为width为10,float将宽度设置为10并且"Doubles"后使用换行符,会生成以下输出int,float和double(如图)。您会注意到间距为10。看起来在单词整数之后有更多空格,这只是因为 "Ints" 有四个字母,有六个空格,"Floats"有六个字母,有四个空格,然后"Doubles"有七个字母。
以下是是 setw 命令的使用例子:
#include <iomanip>
std::cout<<"\n\nThe text without any formating\n";
std::cout<<"Ints"<<"Floats"<<"Doubles"<< "\n";
std::cout<<"\nThe text with setw(15)\n";
std::cout<<"Ints"<<std::setw(15)<<"Floats"<<std::setw(15)<<"Doubles"<< "\n";
std::cout<<"\n\nThe text with tabs\n";
std::cout<<"Ints\t"<<"Floats\t"<<"Doubles"<< "\n";
输出:
例2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a = 45;
float b = 45.323;
double c = 45.5468;
int aa = a + 9;
float bb = b + 9;
double cc = c + 9;
int aaa = aa + 9;
float bbb = bb + 9;
double ccc = cc + 9;
cout<<"a\040=\040"<<a<<'\n';
cout<<"aa = a + 9 = "<<aa<<'\n';
cout<<"aaa = aa + 9 = "<<aaa<<'\n';
cout<<"\n\nb = "<<b<<'\n';
cout<<"bb = b + 9 = "<<bb<<'\n';
cout<<"bbb = bb + 9 = "<<bbb<<'\n';
cout<<"\n\nc = "<<c<<'\n';
cout<<"cc = c + 9 = "<<cc<<'\n';
cout<<"ccc = cc + 9 = "<<ccc<<'\n';
return 0;
}
输出:
这里注意一个转义字符:"\040","\040"中的040表示8进制数40,即对应的10进制为32。即是空格符号。
例3:
#include <iostream>
#include <iomanip>
int main()
{
int a = 45;
float b = 45.323;
double c = 45.5468;
int aa = a + 9;
float bb = b + 9;
double cc = c + 9;
int aaa = aa + 9;
float bbb = bb + 9;
double ccc = cc + 9;
std::cout<<"print with set width = 10\n";
std::cout<<"Ints"<<std::setw(10);
std::cout<<"Floats"<<std::setw(10);
std::cout<<"Doubles"<<std::setw(10) << "\n";
std::cout<< a;
std::cout<< std::setw(12)<< b;
std::cout<< std::setw(10)<< c << "\n";
std::cout<< aa;
std::cout<< std::setw(12)<< bb;
std::cout<< std::setw(10)<< cc << "\n";
std::cout<< aaa;
std::cout<< std::setw(12)<< bbb;
std::cout<< std::setw(10)<< ccc << "\n\n";
std::cout<<"print with tabs\n";
std::cout<<"Int"<<"\tFloats"<<"\tDoubles\n";
std::cout<< aaa<<"\t"<< bbb<<"\t"<< ccc <<"\n";
return 0;
}
输出:
文件输入输出(File IO)
1。与其他编程语言一样,C ++ 可以读写文件。文件IO的步骤包括 <fstream> 库。这是包含读取和写入文件的所有指令的库。
2。然后我们需要创建一个流。我们有三种选择来创建流,输入,输出或两者。
(1) ofstream myfile。这个告诉我们我们要创建一个输出流,该流的名称是myfile,这就是我们用来写入文件的内容。
(2) ifstream myfile。我们正在创建一个名为myfile的输入流,这是用于读取文件。所以输入和输出是指程序而不是文件。
(3)fstream myfile。 Myfile将是我们将用于读取和写入文件的流的名称。
3。在我们创建了流之后,我们必须打开该文件。那么我们说myfile.open("filename")。
4。如果该文件不存在,程序将创建它。然后,我们写或读文件。
5。最后,使用myfile.close关闭该文件。
在下一个练习中的内容如下:
1、您将看到输出流和输入流的运行情况。我希望你以两种不同的方式使用这个程序。首先,更改名为input.txt的文件的内容。
2、然后,将ifstream和ofstream更改为fstream。
我们来看一个例子:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
//create an output stream to write to the file
//append the new lines to the end of the file
ofstream myfileI ("input.txt", ios::app);
if (myfileI.is_open())
{
myfileI << "\nI am adding a line.\n";
myfileI << "I am adding another line.\n";
myfileI.close();
}
else cout << "Unable to open file for writing";
//create an input stream to write to the file
ifstream myfileO ("input.txt");
if (myfileO.is_open())
{
while ( getline (myfileO, line) )
{
cout << line << '\n';
}
myfileO.close();
}
else cout << "Unable to open file for reading";
return 0;
}
解析:
我们已经包含了fstream(如图)。
首先,我们要写入文件(如图)。我们将使用名为 myfileI 的输出文件流,并将输入 input.txt 是我们要写入的文件,我们将追加到此文件的末尾。通常,如果程序写入文件,我们可以打开该文件并查看该文件中添加的文本。在这种情况下我们不能这样做,所以我们将无法在文件中看到添加的文本,但是当我们从文件中读取时,我们将能够看到添加的文本。
所以,我们有我们的 input.txt 文件,它有三行,
我们将运行一个程序,将添加两行。我正在添加一行,我正在添加另一行。
然后,它将读出该文件中的所有行。
程序运行,输出:
当我们查看 input.txt 时,它添加了行,我添加了一行,我添加了另一行。我们还可以继续编辑 input.txt 文件。
头文件(Header Files)
正如我们所看到的,我们可以在C ++中包含其他库。我们还可以包括我们自己的库。传统上,这些文件称为头文件(Header Files),它们具有.hpp扩展名(为什么叫.hpp,因为里面h代表header也就是头文件的意思),但任何扩展名都可以使用。
头文件包含有关如何执行任务的信息,而主程序包含有关如何完成任务的信息。
让我们看看头文件如何与简单的“Hello,world!”一起工作。我们可以测试这个程序运行。如图
让我们删除与执行任务没有直接关系的所有内容,包括 include 语句,在本例中为 iostream 和 string ,以及 using 语句,使用namespace.standard,让我们将它们放在头文件中。如图
以下是我创建的头文件,
现在,我们必须告诉编译器包含头文件。
请注意,我在这里使用双引号。
如果使用尖括号,则会出现编译错误,因为 main.hpp 位于我们的本地工作目录中。尖括号说,“查看标准库目录”。现在,如果我们要运行这个程序,它就会像所有标题信息仍然在 main.cpp 程序中一样工作。
运行结果:
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。