标题: 请教高手续。。。 [打印本页] 作者: likaifly 时间: 2011-10-31 18:41 标题: 请教高手续。。。 #include <fstream>$ ~( t. x3 M' y$ z
#include <iostream> 4 P7 Q/ w& d2 i3 @* W. P#include <cstdlib>* b) f( K/ L I/ u+ Z
using namespace std; - Q( G8 A. A+ fvoid copy(ifstream& in_stream, ofstream& out_stream)- { |: R, j8 \+ l Y f
{ * l2 B/ j4 z* d) }* q, ^) z. C& F7 B: b! O$ Y
char symbol;, } x. y, ]3 T. _0 L
int b,i;# O7 o% o# D# i
int n;/ [# _2 X2 M9 M4 [
double s;3 K: f5 |1 l7 j" M, R
// 外循环用于处理数据' p3 X4 z7 J3 j% o
do " V3 E" W' p$ v {) O {( f$ m' N K9 x1 e" A
( ^* `9 E+ @0 I6 v s=0;n=0; ; V; E. b4 W9 A5 n in_stream.get(symbol); # b9 n1 e, J8 j, }5 ` // 此循环用于获得学生姓名$ d* |; H: H; y) i. C, s' ^5 g
while (true) , e* w0 A, i7 h! l { 9 M o% K1 l% Z# t+ U) t2 X8 S
if(symbol >= '0' && symbol <= '9') $ \- U! o1 d5 ]2 k4 ` {0 _2 F) ^, c, \1 J' g
break;% p$ z/ R3 A$ X+ w$ ~" d$ Z) r- m: h
} ! a B, Y5 f* b" K9 e: w out_stream.put(symbol); $ c' t0 n4 y( v# C1 ~. B in_stream.get(symbol);5 Q- K) w, M. p! p
} ' ?4 q; m: h9 x& K$ n in_stream.putback(symbol); l8 R, h( m' q f) \* z& E- d* p$ T cout << "good.\n";& k0 G6 z! G4 p
// 此循环用于处理一行的十个成绩 5 ?6 v* t- |, @# q& b) \6 Q & e- Q' {7 {8 e; Z: e2 E while (true) , z) k8 x% L3 j$ A7 p* X% G" f x { # C, d( y; U% O4 [7 ^3 @ in_stream >> b; & K9 P- b9 W7 y s=s+b; 0 o! h, o5 `' S# Y n++;2 I4 D$ Q/ l Y
out_stream << b << ' ';8 |& @! s8 s) [/ K |: B
in_stream.get(symbol);% G* f. \! \+ {' S2 x! a, {; C
if(symbol=='\n') //如果遇到换行就跳出循环5 K6 G2 f* [5 g6 a A; a C. g# b
break; ! v9 P% S1 r" ]- [ * G/ ]1 }- ]; z' ` }" {, X/ M/ n) ^9 y
cout << "very good.\n";; {6 O/ U+ ?9 n4 ?
s = s / n;$ O( A3 ?/ U- r
out_stream << s<<endl; 7 w- w- q; l7 s- ~) j }while(!in_stream.eof()); / E4 O% Y, ?8 s- n, \* s( [8 d}0 o: e8 p1 ^% f6 O+ Z
int main()& a$ y6 f) e3 y% q
{ ( h% ~# _4 M6 X + t9 s8 l7 ?% {$ x! e ifstream in;" b5 ]8 \. E2 l. M2 v2 |
ofstream out; 3 P1 P: }* R V7 m in.open("d:\\data2.txt"); {( v+ p( g4 R0 J" e # _4 w& R/ l3 _) W) F if (in.fail())1 v# I/ o/ G/ |0 q5 K8 s
{2 r9 T2 k& \- x; h4 A% k
cout << "Input file opening failed";$ |3 o, ^% f4 L! o
exit(1); 2 i6 E6 U, W: Y# z$ t# K9 r }% T/ W8 j+ U' r
$ u& v3 `+ A# z2 E% U+ z out.open("d:\\data3.txt"); ! j- n* K [' _1 @% V if (out.fail())# b, j( u/ P4 I& Q. |$ B8 c
{3 o, v; Y t2 t) M, X9 Q
cout << "Output file opening failed";: L p8 f5 A; q x1 ^4 [
exit(1); 0 v, I9 u) I P# b( t } v _; B- o. o6 | x: E
cout << "ok.\n";, t/ z8 w% G. e, o! [
5 N, x- O8 G4 d , h5 M" m; ~/ A0 d copy(in, out); , d7 l, J/ T) i* U+ C: P! G5 u2 G& ^' c in.close(); 2 _9 W! Z/ v! k out.close();# J, }" i; h. \6 Y& ~/ ?$ p
6 A- F1 T1 S) C0 U: k1 b return 0; $ }' ^1 S& t8 G8 F8 c7 I}