为什么在写入文件时删除空白会导致无法读取文件?

时间:2019-07-20 08:57:59

标签: c++ fstream

我正在学习C ++,如果在写入文件时未添加空格,则会发现读取文件的问题。

此外,我写入的文件未包含预期的空格。(我用记事本++打开了

顺便说一句,我正在使用代码:: blocks17.12。

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

int main()
{   ofstream out("file1");
    int i;
    ifstream in;
    if(!out){cerr << "create file error!\n"; return 1;}
    for(i = 1; i<=10; ++i) out << i <<' '; 
/*if I remove (<<' ') here, nothing was pirnted on screen. */
    out.close();

    in.open("file1");
    if(!in){cerr << "open file error!\n"; return 1;}
    while(in >> i) cout<< i << ' ';
    in.close();

    return 0;
}

1 个答案:

答案 0 :(得分:1)

如果您将138写入没有空格的文件,那么您将得到138,现在如何确定它不是{{ 1}}是写的吗?

输入流需要某种方式指示数字如何分隔。

如果您想知道为什么他们认为写数字并不会自动添加空格,那是因为它并不总是所需的行为。

正如Martin Heralecký 正确提及的那样。 138不会读取任何内容,因为没有空格in >> i被写入文件,这肯定超出了仅12345678910的设置范围。

int的实际大小取决于平台,但是您不应期望它可以存储大于int的数字。

有关Fundamental types: Properties

的更多详细信息