C ++基础 | 格式化输出,文件输入输出(File IO),头文件(Header Files)_3

目录

格式化输出

文件输入输出(File IO)

头文件(Header Files)


格式化输出

要格式化数据,我们可以使用转义字符串(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 程序中一样工作。

运行结果:


调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。

猜你喜欢

转载自blog.csdn.net/sw3300255/article/details/84745383
今日推荐