下沙论坛

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

QQ登录

QQ登录

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

basic_ifstream tellg ws

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2006-3-19 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:    Redhat Linux AS 4 2 v N: Z; B9 ]% n6 }& A* U编译器  g++ 3.2.32 D2 F+ ^/ B. \8 z& k3 T 输源代码- o- N1 c2 K% C& y2 i+ e) d7 | ? #include : V+ L4 f+ u; f* t: X#include % w7 S% Q; ~# {1 U0 f) j #include # e! R- {4 `: N& B7 z#include : L' A; y6 h( r: N! `) ~+ | using namespace std; # H+ o3 U. ~8 }& S/ Pint main()& r. K5 \* t; m" I { ; U, j H+ E& F- c$ C //cout<<"Hello World\n";7 e" e- Z6 [/ [' H! z! F 8 G2 S0 I( x: h+ @' E0 c* B //block until user types something 1 |' I# r4 v! H* Q basic_ifstream fi; 2 ~8 O6 ?5 [3 p* G3 J/ G1 h+ q wstring s;/ h, Q# ~+ T; Y% a6 l fi.open("/root/workspace/test/123.txt"); * J1 G; J9 i3 t cout<0 e9 C+ W7 X8 T' h. E ws(fi);    //去除空白: V5 h; ^; D# T2 k' Z fi.tellg();   //读一下下一个读取位置   [U]没被注释掉[/U]---〉第一种情况 + L, L7 M6 {) @* o [U]被注释掉[/U]---〉第二种情况 $ x# ^+ i2 G9 |1 F. ^" j getline(fi,s); //读一行/ A' T' j/ x* X5 y, w wcout<: {4 B: Q) u! O D, S1 H fgetc(stdin);' I, M: ^' |: ]# ? return 0; 1 r8 `. ^) a5 M* z# V} , b- v/ d0 W7 r' I, \- j3 J /* 4 ~5 g6 x# g2 T123.txt内容在下面一行的引号内,引号内第一个是空格 4 S0 V& x) u0 F _- Q' K- w% q" #define"6 K9 s9 `5 S% C$ @, c */ 1 S) W2 y& H. r输出 % k( |& U9 \$ `(第一种情况和第二种情况都是下面的样子([U]#前面没有空格[/U]))) ?/ b% ~: J& L/ ~9 v$ Q 1 7 A7 n% l; r! a4 ~4 `#define9 ?+ g( e* L$ \+ b5 K1 u/ O. ~ /////////////////////////////////////////////////////////////////////////////////////////// . z. H5 u- e7 C; }7 ~% g平台:    winxp # E0 _7 ]7 L D$ |编译器  [U]ms ml 8.0.50727.42 (vc++ 2005)[/U]---〉情况A : D2 B) t: }, U! _' T [U]ms ml ????(忘了,就是vc++6.0的)[/U]---〉情况B / ]2 n2 E& O) {7 Z1 z, b输源代码 % B0 F9 U8 Q3 n. q6 A#include ! {! L! X% A/ u5 O/ F#include ( i' @2 c# [7 ?% ~1 A #include 0 P* |( g2 e4 h! T$ y6 {9 h #include $ i. A% }9 p6 Cusing namespace std; 3 w( b) t3 t( t1 e% ~6 `$ i6 [$ Jint main() 3 L0 i; w# L0 S/ W2 @{: f# Q+ u0 y1 e) A+ z //cout<<"Hello World\n"; o1 m& g3 _6 ~1 V8 a , U" g: D0 a4 c //block until user types something 0 Z5 g& s$ }+ b* F. `* b4 [ basic_ifstream fi; 5 i. t1 L3 d6 \. B# H wstring s; * f+ b4 ]! e5 I) G% Y% ^8 `' A fi.open("123.txt");8 h' ~- c/ @5 F( w cout< X- ]7 k! t0 ?5 ^ ws(fi); ! U; K0 `+ ^) {4 f& k //fi.tellg(); [U] //被注释掉[/U]---〉第一种情况+ c. l [- j3 h4 B f8 b$ z1 M8 D8 m [U]//没被注释掉[/U]---〉第二种情况3 y' m: z4 K5 T8 y; e' a getline(fi,s);- C& ?8 i( r' ]6 @$ P! g wcout<4 a% {+ X. H {( Q; S6 V# x0 K0 T fgetc(stdin);( K2 V( f- Y8 y) g return 0;; ?) a1 u- x% U# I) _ } 1 {7 _6 Q$ [' c& j, u 7 `# y9 D2 j& L+ M D; o/* " ^4 I4 G1 q( @% e( N6 [1 U123.txt内容在下面一行的引号内,引号内第一个是空格6 {# |' u# O) R6 \; \# i " #define" 0 ?8 }2 q4 P* w2 x' E( c) v*/: {3 T5 u: x0 b0 |4 p0 ^ 输出9 a- R: J0 H; a (情况A+第一种情况)% o% j- X0 U( |; z) y 1; s7 Z, ?" J* M$ o6 c #define ! C+ J! C4 s4 ^2 [; w; ~5 R(跟g++一样) 2 ?3 }% N$ e- p7 N: W: k5 b* t8 f" E(情况A+第二种情况)& l, S) Z) u3 B4 T" I 1! t. q6 Q: n! \: m; B define7 a, T+ H: e# p (跟g++[U]不[/U]一样,少了#,是tellg()导致?) # q. T- R |& Y9 U, a////////////////////////////////////////////( k- R$ O& C, V% F (情况B+第一种情况/第二种情况)% ^2 C- p* W n! z' Z: V 1* R I2 ?! N" N! V3 M y* T #define3 @6 k. z: T$ q# w: m, f+ X B (跟g++[U]不[/U]一样,#前多了空格,ws没作用?) ' ^: ~- x, ^& @//--------------------------------------------------------------------------$ [) c) e0 {6 G6 z; x 评价如下: * I( J. K) l9 L, y" ]- a按照理论( u4 `: X" p1 @ g++两种情况下的输出都是对的 + u* d% x0 N/ \4 t- M$ m+ u6 dvc++2005只有第一种情况对; h# U$ q; A# O/ i$ x vc++6两种情况都有问题 ' d6 R4 T7 `+ @! W, R! K0 y5 V现在的问题是,这样的评价有没有问题,输出为什么不同? , \9 t5 ]4 T1 \" y( S+ M(本人希望得到g++的输出,根据文档就应该这样)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

该用户从未签到

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

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

回复 支持 反对

使用道具 举报

该用户从未签到

3
 楼主| 发表于 2006-3-27 22:10:00 | 只看该作者
难道就没人碰上过这个问题?? + Z; r M& A( f# Z. j3 Z6 k注: & f: j5 [0 n* J" g8 O$ ?8 ?# d/ t1楼帖子的内容显示是有问题的 \- \6 p& D+ e8 ]比如“#include”,后面的内容显示不出来 " g4 ~' U( j. {7 o& U比如“cout<”,后面的内容显示不出来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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