下沙论坛

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

QQ登录

QQ登录

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

basic_ifstream tellg ws

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2006-3-19 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:    Redhat Linux AS 4/ N% b1 \4 X: V4 T 编译器  g++ 3.2.3 3 i: q4 J% r7 F* C) m输源代码 " K4 w8 r3 @7 \* L( ]1 z#include 5 E+ u6 `3 J: c1 t5 H ` #include 6 b3 W! E; m5 S4 f& `! Z6 F! j: D1 a#include 0 [9 Z) _! c8 R v: k- u, W#include 4 J, C* a- p# ~. w' D9 `4 P* n% uusing namespace std; & `( j; k+ L% `) R4 j T( P5 rint main()- |6 {5 f9 Z+ L# n {- {2 o% y0 q: M5 s5 a$ e$ Q3 [ //cout<<"Hello World\n";" _6 O# @9 i$ n, n4 {, T/ w + l4 t7 _. E; t! _7 S& [7 d //block until user types something! X+ k8 [" U0 k3 P( i+ D: l+ k basic_ifstream fi; ) O3 i1 W2 L6 G wstring s; 1 V5 ?- i4 b' G' s" | _6 C+ z fi.open("/root/workspace/test/123.txt"); 2 g4 J' N/ ]- W5 n* p4 { cout<2 c3 A' | u6 P ws(fi);    //去除空白, n6 _3 j+ I( @" `" ?* M- E* ^ fi.tellg();   //读一下下一个读取位置   [U]没被注释掉[/U]---〉第一种情况 ' N; Z+ V) k/ ]' J, u [U]被注释掉[/U]---〉第二种情况$ _1 ?! o3 L; B; ^8 N getline(fi,s); //读一行6 [9 o9 P$ Q; _( e. @. [7 d+ a wcout< F. ]7 H. l5 k; [ fgetc(stdin);5 V! J8 j P# R3 s2 d return 0;: l$ f y5 O; X- v5 R1 o( V0 ?3 e } , g2 K/ Q) a5 ^; Y6 Z$ A/* 0 r. X- b9 a, _1 r1 T123.txt内容在下面一行的引号内,引号内第一个是空格" J7 |& w) e* |: Y% G! L " #define"1 q3 c% w; o8 L' t7 x5 |8 K */# X9 J% l8 y: r. |8 w$ F 输出% J" R) J' i8 `: \ (第一种情况和第二种情况都是下面的样子([U]#前面没有空格[/U])) " d% d! F; t$ ^' B5 C3 ? 1- m5 E3 i/ ?# J6 G: ?# g E #define 7 @$ ^# ?. k+ f5 g/ c1 M///////////////////////////////////////////////////////////////////////////////////////////0 W, v1 t& X: ?4 }% U' K: t4 [- a) N 平台:    winxp. {9 N% c4 X5 m, f. X: p3 I9 [ 编译器  [U]ms ml 8.0.50727.42 (vc++ 2005)[/U]---〉情况A7 f2 h# M2 C! n0 c+ M [U]ms ml ????(忘了,就是vc++6.0的)[/U]---〉情况B 3 R: C2 n" y' q1 x W输源代码 + n$ T; }0 U+ m: u% x% \#include 1 N @' y4 E5 ^1 j: u% ^% ^#include , k2 n0 }4 P9 n0 T) j, r$ F' ^ #include 7 Z- r- X" [, B" d5 X+ k#include $ D, G5 Y# m" l/ B' K3 J# S using namespace std;6 E1 K' Z/ c6 X% G. \' X7 t int main() # N. d% }$ C6 j! \+ w, n) G# v8 p{ # I; R* H. h4 V g6 G+ ?1 { //cout<<"Hello World\n";& r# i% e* ^5 Q( Q * R$ }, u) e3 F4 q //block until user types something 1 I* x- g0 d: c7 N, E S basic_ifstream fi;, u. T. Q" n" U; E( L; C wstring s; * G. V: k1 M' g+ M4 f5 d( a, f fi.open("123.txt");4 d: }1 G% `8 a0 n. Q' @" y7 N cout<) z, e7 X3 a$ z; m( x0 T" d! n ws(fi); # o8 I, @( p4 B, i //fi.tellg(); [U] //被注释掉[/U]---〉第一种情况4 c" P1 e8 I' E" u" B [U]//没被注释掉[/U]---〉第二种情况 , U3 _ W6 w4 c' b* i0 V) ~ getline(fi,s); ! S/ W# i8 d7 m5 t* d2 ` wcout<# \) M- _6 c0 J& R4 U8 Q$ v fgetc(stdin); ) R! c, N0 t" M6 k return 0;& b. o5 c1 z1 } } * z! P b w* H2 z3 T: U 5 K: S( n, ^8 E. p/*5 ?8 u" q) E6 `4 M/ F6 G# ~# l 123.txt内容在下面一行的引号内,引号内第一个是空格$ J/ J# R2 ]8 t1 _ g7 X " #define"( U2 \% e8 n' F% V! A; ~, D */ # t' s% n. Z9 }0 ~: W9 ^* G输出/ P+ X1 j' a$ y8 Z (情况A+第一种情况)1 q) k% n" C4 B- @ 11 ?+ K( L' R$ t" O' _ #define6 }5 L% X# n5 C' V (跟g++一样)* n, P/ M7 @5 H# x (情况A+第二种情况)0 @0 D8 R4 ?( e# h 12 O2 j6 A2 g3 N+ i define 3 l9 i/ X2 U* W; b% G0 j2 q(跟g++[U]不[/U]一样,少了#,是tellg()导致?) 6 b$ ], M1 H% c2 Y: d6 c( u////////////////////////////////////////////1 [/ c: J, y( a# m2 |) b' H6 ^ (情况B+第一种情况/第二种情况)' f3 |9 A: j. O- C3 ] 1 $ M" _+ F Y& i& D" ]0 k #define- K- ]7 x! W4 c8 |7 Z. r3 Q (跟g++[U]不[/U]一样,#前多了空格,ws没作用?): f& A' I7 _4 U. g; G6 i4 m //--------------------------------------------------------------------------! y# F; Y1 K3 j) p5 ^3 }! D 评价如下: a- U( d& i7 D 按照理论 $ x! k4 f% _# b% v! F7 ag++两种情况下的输出都是对的! M6 c0 q" {; [, N5 C vc++2005只有第一种情况对# n! t" h0 C/ m! g5 K vc++6两种情况都有问题 H8 M+ q, }4 B) F( l现在的问题是,这样的评价有没有问题,输出为什么不同?# f0 Q7 ^5 d4 c (本人希望得到g++的输出,根据文档就应该这样)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

该用户从未签到

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

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

回复 支持 反对

使用道具 举报

该用户从未签到

3
 楼主| 发表于 2006-3-27 22:10:00 | 只看该作者
难道就没人碰上过这个问题?? ' ^' f8 P6 U2 ]% N6 d2 s0 J. q( s注:; C$ \: l9 W2 a6 Y 1楼帖子的内容显示是有问题的( m% n/ |, x+ X; r& b) h) X$ n' P 比如“#include”,后面的内容显示不出来 7 L2 W) @& ~! i8 |比如“cout<”,后面的内容显示不出来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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