注册 登录
编程论坛 C++教室

c++中输入流的问题。

realnaoko 发布于 2007-06-22 10:38, 1088 次点击
我遇到这样一个问题:
题目:从一个double类型的文件(abc.txt)中读取全部数字并求平均数,每个数字以空格和/或换行符结束。

我想知道怎么测试最后遇到的是空格和/或换行符。
我知道测试数字的方法是 while(in_stream >> temp) //in_stream 是文件输入流,temp是变量
用这个方法时候,遇到/它就算结束了。
文件内容:1 2/
3

最后得出结果是: 1.5
测试字符的方法是 while(in_stream.eof())

c++没学多久,问题也是第一次提,也许让人很难懂。希望能指点,或给出题目的源程序。
5 回复
#2
aipb20072007-06-22 11:06
确实没怎么看懂,

你文件里的数字是怎么放的?

1 2 3 4 5
1/2/3/4/5
1
2
3
4
5

如果是1和3,直接用流就可以判断,如果是2,麻烦点,要用到转换。

上面哪一种?
#3
realnaoko2007-06-23 17:05

是   1/2/3/4/5 这种.
还有如果文件里面除了有字符还有数字那要怎么读取呢?
比如:
Beijing 1 2 3 4
Shanghai 6 7 8 9
Tianjin 4 3 2 1
Hangzhou 9 8 7 6

[此贴子已经被作者于2007-6-23 17:25:27编辑过]

#4
aipb20072007-06-23 17:39
都用 字符传流可以处理。
去看sstream

#5
aipb20072007-06-23 17:55

getline(fin,string);
istringstream in_str(string);

//处理
#6
Arcticanimal2007-06-23 19:23
由于temp是整型(或浮点型), 虽然文件流可以自动识别空格, 但是析取过程遇到非数字且非空格的字符就停止了,
最好是用readline()然后再从字符数组里去计算.
1