我正在学习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;
}
答案 0 :(得分:1)
如果您将1
,3
和8
写入没有空格的文件,那么您将得到138
,现在如何确定它不是{{ 1}}是写的吗?
输入流需要某种方式指示数字如何分隔。
如果您想知道为什么他们认为写数字并不会自动添加空格,那是因为它并不总是所需的行为。
正如Martin Heralecký 正确提及的那样。 138
不会读取任何内容,因为没有空格in >> i
被写入文件,这肯定超出了仅12345678910
的设置范围。
int
的实际大小取决于平台,但是您不应期望它可以存储大于int
的数字。