下沙论坛

 找回密码
 注册论坛(EC通行证)

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 6365|回复: 2
打印 上一主题 下一主题

basic_ifstream tellg ws

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2006-3-19 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:    Redhat Linux AS 4 3 g6 V9 _2 A8 G# w% a: b. u# {3 {编译器  g++ 3.2.3 B) s' U7 P$ p 输源代码 V$ z' ]1 a+ J4 Q5 @+ W: S* e$ p #include 4 ^4 }! {/ y! M+ [#include 8 r' J! g2 ]9 V5 V7 j- t1 |0 L #include % A" o' R1 T: G6 j/ Z/ P/ B+ ?3 D#include 4 z2 l; T/ f4 C( S) m using namespace std; 3 H3 s, S: }8 z$ f, a8 f$ {int main() / o4 u% H2 r5 z" I4 V* F, i& O{0 v* e+ I1 H6 H //cout<<"Hello World\n"; . j6 ~4 G" s" ?. W7 i2 F; n8 I 8 f( f% ~" n, J, M/ x7 n //block until user types something0 D' C% g9 w# n# u* Q basic_ifstream fi; 3 J5 _9 d5 i. m! {; {+ X0 c wstring s;, x) Q7 e8 x3 m/ L3 l+ z fi.open("/root/workspace/test/123.txt");; q7 ?$ l5 `( g6 l2 e cout<9 u- [1 E0 }# ` X4 S ws(fi);    //去除空白7 q; N3 x7 m& i ?: r: B fi.tellg();   //读一下下一个读取位置   [U]没被注释掉[/U]---〉第一种情况 8 F1 I3 ]4 [. ]! g [U]被注释掉[/U]---〉第二种情况" S1 r; B8 _! S9 ]4 w8 M8 P- N+ u getline(fi,s); //读一行 ( h4 F; l5 y6 } Z, Z9 D { wcout<+ z5 }1 U7 y$ {' V ]$ J fgetc(stdin);; y' z) _) f5 {0 \; P# a; l return 0; m1 y! ]: C1 j' m. g K" a) j' z } 3 w9 t7 D. U/ b# B/ }/* - I+ j" C. Z( _: Q0 m I0 H123.txt内容在下面一行的引号内,引号内第一个是空格: {# V2 @; R1 d% S0 n H& A " #define") R2 X8 [6 N- `$ e0 Y; Z3 j" R */ % i% G* U; z8 N; i8 v. }输出 $ ]' g) e' i" f5 s: C& x4 B L' }(第一种情况和第二种情况都是下面的样子([U]#前面没有空格[/U])) ; p0 f$ l/ Z( t 1 0 J# S6 ^. E" f# S#define 4 Q9 c( c8 b- O! B///////////////////////////////////////////////////////////////////////////////////////////3 Z& g5 l F" v$ x+ G 平台:    winxp; W; N9 n2 T9 y8 d( K 编译器  [U]ms ml 8.0.50727.42 (vc++ 2005)[/U]---〉情况A m) J" Z: ]+ i% ^ [U]ms ml ????(忘了,就是vc++6.0的)[/U]---〉情况B , b& T1 Q3 @4 K$ A- g/ \输源代码' F' A4 v4 H6 `0 o8 G/ I# X #include # m7 k; x5 T' I* p' y #include % z. [% d* `$ f4 {" N9 s4 E#include 6 [5 M) _+ m, b c #include ' g7 o! E# ]1 m3 W* E6 X: G" Eusing namespace std; * |2 E7 T" }, V7 t/ sint main() 6 v: z. V3 C# z! ~! C7 |7 q{: C, o* ~1 |! n9 a* V9 [ //cout<<"Hello World\n"; 6 N. G0 d9 B4 P8 H# t" @2 Q7 O* }9 Z ! I; C& c* q9 o //block until user types something - v; N4 @: M; ?7 O5 ` basic_ifstream fi;6 j4 s' K# K2 S+ f4 W2 B# Z wstring s; % Y' S/ `5 g" }" U% S fi.open("123.txt"); ' ]9 v4 j$ V5 U# }0 x4 @, W; K cout<; @$ n' E! K0 Z3 w& a6 v: G# p ws(fi);: l. c1 Y0 S' L" r/ T! c8 y) o //fi.tellg(); [U] //被注释掉[/U]---〉第一种情况 * {* A0 u# a) i0 Z [U]//没被注释掉[/U]---〉第二种情况: t" \2 F! W) i0 }. j9 T( Q getline(fi,s);6 Q6 ^7 g8 _0 j8 I wcout<5 }, G4 V! I; s" E1 p- Z fgetc(stdin); $ f, o. u7 [' H+ c; w% ` return 0;! d+ o C0 [4 n8 t! y1 Q4 K) Y2 u+ ~ } 3 {) b. M4 ]: H% _. F/ q7 `* W$ S% `1 ]' W( L2 A /*, _. y' v* Z6 P) K5 c7 _) ?; q4 s 123.txt内容在下面一行的引号内,引号内第一个是空格 " s* V) Y, M) G7 d6 v" #define" . A' E3 j# b! }9 u8 a, ?*// a5 f' x% e+ j- w" ]: ^) a8 ? 输出 0 p! x' _2 c, W- r2 \. O- Y' v(情况A+第一种情况) 4 T; y1 |, T! h. {0 j 1 7 A5 A" }1 w7 [#define$ }* ]% w0 }+ r, Y: t: C (跟g++一样)* w# S1 c7 t+ ]) Q7 W& s, h$ [6 a3 T (情况A+第二种情况)' p& _) @5 i0 X2 c. i; i0 ?1 q 1 9 ]' S8 R* _7 c7 c1 |0 u: Q Ldefine . ^) e6 R# A' e. `/ z, O% i& }% f. @(跟g++[U]不[/U]一样,少了#,是tellg()导致?) , g: _& t+ p' y7 A$ G9 T# G% {. f//////////////////////////////////////////// ! n9 t# k0 \5 |' ]& b7 ~$ J(情况B+第一种情况/第二种情况)7 v! ~1 b( m& U0 X 1& R, F3 ?+ a& v2 v& F! y3 m! ?; k #define. w- y$ G/ b! p* M$ w# t (跟g++[U]不[/U]一样,#前多了空格,ws没作用?)5 K& D) C: b4 d2 L# v1 u) c //-------------------------------------------------------------------------- , k; J, v) t* P, E评价如下:. f4 B; {7 ^7 p9 K6 \* H 按照理论 & l0 e7 [5 H k- r n' ag++两种情况下的输出都是对的$ J3 f5 C }! ~ vc++2005只有第一种情况对 a# U* m) e. ?2 m. `2 I! J vc++6两种情况都有问题 7 [4 ?) t6 n) V1 q/ b8 s现在的问题是,这样的评价有没有问题,输出为什么不同? ) _9 v* b: e- U' T2 U, W7 g+ Y(本人希望得到g++的输出,根据文档就应该这样)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

该用户从未签到

2
发表于 2006-3-19 21:33:00 | 只看该作者

代码好多啊,我最近眼有点花,飘过。

回复 支持 反对

使用道具 举报

该用户从未签到

3
 楼主| 发表于 2006-3-27 22:10:00 | 只看该作者
难道就没人碰上过这个问题?? 5 z3 f% _! E) D3 ^注:% n6 ~4 \2 h8 {* a% `: R9 h4 H 1楼帖子的内容显示是有问题的 8 k$ v- z( h7 Y) y比如“#include”,后面的内容显示不出来+ Q& K. u1 z. x- A 比如“cout<”,后面的内容显示不出来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

下沙大学生网推荐上一条 /1 下一条

快速回复 返回顶部 返回列表