+ -
当前位置:首页 → 问答吧 → c++ 之输入输出流(一) 真理何在?大家帮忙看看

c++ 之输入输出流(一) 真理何在?大家帮忙看看

时间:2010-07-27

来源:互联网

c++ 之输入输出流(一) 真理何在?
环境: RHEL 5.X g++

1.首先,看程序
vim 8.c

#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
ifstream inf;
inf.open("output.txt");
if (!inf)
{
cerr<<"打开文件失败!";
}
char line[100];
while (!inf.eof())
{
inf.getline(line,10);
cout<<line<<endl;
}
inf.close();

return 0;
}


保存 (vim 命令模式下 输入 ZZ)

2.其次,在当前目录下新建 output.txt  
vim output.txt 并输入
1 9999 999999  
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

保存 (在vi 命令模式下输入ZZ)
3.增加权限属性
chmod 777 output.txt

4.运行程序
g++ 8.c -o 8
./8

结果显示什么也没有。为了看清楚。输出重定向到a.out

./8 > a.out

5.查看 a.out

1 9999  

这个可以理解,输出十个字符嘛。包括空格。但是

再看文件大小  
ls -lh a.out
-rw-r--r-- 1 root root 215K 07-27 19:11 a.out

这就费解了。a.out的大小怎么这么大呢?215K 。按理说应该只有一行内容啊。
可是现在我都不知道有多少行了。除了第一行之外,其他都是用空格填充了。
谁知道可以解释一下吗?谢谢。了。

作者: longxibendi   发布时间: 2010-07-27

你自己去看看这个函数的声明吧。

你在使用这个函数之前有看过这个函数的文档或原型么?

如果我没有记错,参数应该是string。

作者: ah13k   发布时间: 2010-07-27