下沙论坛

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

QQ登录

QQ登录

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

basic_ifstream tellg ws

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2006-3-19 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:    Redhat Linux AS 4 , U7 f2 U) F8 t+ j编译器  g++ 3.2.3 ; j0 `6 W4 R# b* {: W# S' \输源代码 1 y4 K/ H; J3 @+ v#include 7 M+ \) s+ ?9 } g6 @% ~ ^#include ; Q' \" F/ J) ?' v#include 3 U5 X; N N( x r/ E1 m" [% {+ C#include 7 p; V+ a- M1 y7 \1 ~* G- d$ h using namespace std; C5 K5 p# _) X7 H$ U) J5 m0 F int main(): z: v; s' P6 o! @ { & \. r4 }$ y; a/ A( j //cout<<"Hello World\n";4 e, g& |8 Z' M 2 r u2 o- w2 V* ^; C //block until user types something! a) G ]* _% [3 F6 s5 R! { basic_ifstream fi; 1 C7 h$ V: V! k) L wstring s; ' x( V% b0 d& o( |0 B3 @ fi.open("/root/workspace/test/123.txt");+ d8 p2 o3 E5 X cout</ p0 B; o# j- K$ `+ w ws(fi);    //去除空白 ; W( B9 g: T% a fi.tellg();   //读一下下一个读取位置   [U]没被注释掉[/U]---〉第一种情况6 e* L* ?7 ^' O7 A [U]被注释掉[/U]---〉第二种情况 ; w$ |) E n8 z5 G, y b getline(fi,s); //读一行1 v. ~! t2 h' x wcout<) W* f2 K( S$ _ fgetc(stdin);0 ^( m A- P( e/ Y F% i9 u) }+ J7 | return 0; $ P/ X" D: t. o# O} , E U. H! B8 D( \& h/ P( L8 @ /* $ N ^! N* |* s: l9 ?123.txt内容在下面一行的引号内,引号内第一个是空格$ o; X7 r; H; e0 Y- E4 s$ B; k h " #define"+ o5 J! e- b7 |# |( H" E/ m */7 \; c7 Q! k; ~. t: I 输出6 D+ K L r( z# j (第一种情况和第二种情况都是下面的样子([U]#前面没有空格[/U]))9 L& Z9 L& d# R 1 b+ C* s& E* e7 |8 v#define 7 X% Y* u9 ^7 ? L! I1 T. z///////////////////////////////////////////////////////////////////////////////////////////' k3 n c- l0 _0 w: E 平台:    winxp, r8 L7 [; `" `+ y$ U+ W7 o" b 编译器  [U]ms ml 8.0.50727.42 (vc++ 2005)[/U]---〉情况A 6 h- J0 a# p, r! ] t [U]ms ml ????(忘了,就是vc++6.0的)[/U]---〉情况B( e2 n2 G- c( a+ D9 z 输源代码 $ e- o3 c2 J/ v1 [#include 5 ]. ]* ]; d; v#include , e, R* i* ]4 Q# u2 l #include 5 Y6 E1 w# j( _) z9 n#include 5 z& R& e0 Z, i# H6 t) R Husing namespace std;8 X7 R5 y u& I. V# W4 p" } int main() ( E6 x5 }, h9 {) c& E9 T{8 `5 z& ?0 i6 }6 q, V- r- e //cout<<"Hello World\n"; ( {2 r. H' P% H2 X ; w8 k- ]3 o( i/ v# {: y //block until user types something' q2 l [ f; K3 M# d6 R basic_ifstream fi; / D" b! u0 e& s1 @/ n wstring s;8 ?$ F. q' ]5 t% t( ^ fi.open("123.txt");' N2 @0 |( e5 b3 A. k cout<) n4 ?8 y$ R* K! M0 t; ^; N ws(fi); ' \, Y$ Z2 m+ }' `: H t //fi.tellg(); [U] //被注释掉[/U]---〉第一种情况3 N+ n2 }' ^- f6 O [U]//没被注释掉[/U]---〉第二种情况9 U" a* m7 e, A6 Z4 G getline(fi,s); 4 U3 X7 X. Z6 `* x$ W, Q wcout<- E1 w, v/ ]2 z# _& E/ ` fgetc(stdin); 5 n+ \9 ?3 i* ]) I: z" R return 0;( t" Z. ?4 H" R7 i% ` } q% ^- `1 q1 ?) j. z# M) ]& t & |' q5 \! c6 u2 M# R! V+ K, H/* 1 e4 u" o5 G# y0 E/ M# n123.txt内容在下面一行的引号内,引号内第一个是空格 - v, M1 o# c3 O& V+ ^% u J" #define"& _6 Q6 O+ I( i3 D/ T5 G( z( y */( e1 F0 y* u, _) x 输出 & H* V, v& c4 z/ P% L(情况A+第一种情况)& y0 @" P4 h* J4 Z! Y 16 p0 V0 W" |# \) l: G: K8 A9 | #define ) v! |. w5 Q) G% O8 F(跟g++一样) 1 c' z9 W2 a6 m3 G(情况A+第二种情况) 0 a) p. G4 F! y: R* K! {' W$ W 1* U7 u+ |+ ^! m5 h* g define+ W$ M" L# W8 i+ K& a; b% T (跟g++[U]不[/U]一样,少了#,是tellg()导致?) * A* F6 G g4 t$ k* z////////////////////////////////////////////, W% h k8 U. ^" O4 ] (情况B+第一种情况/第二种情况) , |3 \# i! E8 Z1 G8 _/ N 1/ ]2 g; q( S, z) F #define ! ~* @( L5 A% r: S% O(跟g++[U]不[/U]一样,#前多了空格,ws没作用?)5 d# q0 X- v1 x0 | //-------------------------------------------------------------------------- 5 ~3 y0 ^. X5 ^( y评价如下: 9 x9 ^: }8 J( `# i+ {) h按照理论9 Z% |4 D9 ~. S$ Q; ? g++两种情况下的输出都是对的! q* d, R0 A, R6 ]1 d vc++2005只有第一种情况对 ) ?- q0 g" F3 D9 h: I0 ~' ^) a6 ^vc++6两种情况都有问题2 M B5 @$ I. t3 ^ 现在的问题是,这样的评价有没有问题,输出为什么不同? # W9 ?0 L G8 [0 _ U# Q. U(本人希望得到g++的输出,根据文档就应该这样)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

该用户从未签到

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

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

回复 支持 反对

使用道具 举报

该用户从未签到

3
 楼主| 发表于 2006-3-27 22:10:00 | 只看该作者
难道就没人碰上过这个问题?? ; V; j8 ?6 m7 r+ V9 {" i( K注: 8 T0 ^3 K4 Z6 J r3 P# A0 I1楼帖子的内容显示是有问题的 1 l' c% A2 M$ N' `) P& z! U比如“#include”,后面的内容显示不出来 9 q/ t, Q) H( \' f- q' J比如“cout<”,后面的内容显示不出来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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