c++ - 在打印之前将内容存储在内存中的目的是什么?

标签 c++

我是 C++ 的新手,目前使用的是 visual studio。

我在许多在线教程中看到,当使用 ifstream 读取文件时,在我们cout 循环遍历每一行的内容之前,我们写入当前的内容行到 char data[] var 然后 cout 数据。

类似下面的内容

#include<iostream>
#include<fstream>
using namespace std;

int main()
{
        ifstream f("D:\\file1.txt");
        char a[80];

        while(!f.eof())
        {
                f >> a;
                cout << a << endl;
        }

        return(0);
}

有什么意义

char a[80];
...
f >> a;
cout << a << endl;

当我们可以做的时候

cout << f << endl;

并节省声明一个字符和浪费更多的代码行?

最佳答案

C++ 中的首选方法是:

#include<iostream>
#include<fstream>

int main()
{
        std::ifstream f("D:\\file1.txt");

        if( f )
        {
            std::string line;
            while(getline(f, line) )
            {
                std::cout << line << endl;
            }
         }

        return 0 ;
}

如果要复制或列出文件,请使用操作系统命令。操作系统命令针对处理文件进行了更优化。此外,它们已经存在并经过测试,因此您不会浪费时间。

关于c++ - 在打印之前将内容存储在内存中的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099056/

相关文章:

c++ - std::string 最终会成为我们的编译时字符串吗?

c++ - strncmp 没有正确匹配

c++ - 将输入的 char* 拆分为 vector

c++ - 尾调用优化似乎会稍微降低性能

c++ - 为什么叫动态绑定(bind)呢?

C++ 模糊访问 - 虚拟继承

c++ - 尝试将元组推回 const vector 时出错

c++ - 没有 Windows API 调用的 Windows 当前 ThreadID

c++ - 从 FILETIME 创建变体

c++ - 新的 __LINE__ 什么时候开始?