为什么在写入文件时删除空格无法读取文件

why does removing blank space while writing into file fails reading files?

本文关键字:文件 空格 读取 删除 为什么      更新时间:2023-10-16

我正在学习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;
}

如果你写138到一个没有空格的文件,那么你现在138你想如何弄清楚它不是138写的?

输入流需要某种指示数字是如何分开的。

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

正如马丁·赫拉莱茨基正确提到的那样。 in >> i不会读取任何内容,因为没有空格12345678910会写入文件,这肯定超出了int仅您的设置的范围。

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

有关基本类型:属性的更多详细信息