下沙论坛

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

QQ登录

QQ登录

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

basic_ifstream tellg ws

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2006-3-19 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:    Redhat Linux AS 4 % F2 @, J5 i1 Z6 T4 P编译器  g++ 3.2.3/ j+ Z6 k4 [( o5 a: p 输源代码; g9 H6 |. [& z' l8 P% z #include : U" ]1 H- Y; |; i& z/ N& A$ F" O #include ' G; I) x9 X- Q. Q+ ~* {" H#include 5 X4 K3 K; |* l5 z#include ' u, H% @- J3 ]$ Ausing namespace std;! m8 |7 X* F& b# l int main()# t6 U; ?6 q" _) z. w; v { : k3 h1 `, u; {! P2 s //cout<<"Hello World\n";+ C2 t+ [: o. E% u % u2 v9 }; x t* F0 X" h1 K //block until user types something! Q, |3 t k& l4 P basic_ifstream fi; 0 y k0 f0 c: P5 U( v( q% T5 } wstring s;) g% M% c5 d4 F2 S% b! G1 c) A fi.open("/root/workspace/test/123.txt");. g" d5 ?9 X- W* r1 E0 K5 r7 u cout<$ g" i1 A6 X4 ?: N8 ]9 ^ ws(fi);    //去除空白 3 k" r8 W- \6 c fi.tellg();   //读一下下一个读取位置   [U]没被注释掉[/U]---〉第一种情况* Z5 h3 i. n, t [U]被注释掉[/U]---〉第二种情况2 T1 A- u5 X* A" `/ Y( G* b getline(fi,s); //读一行 ( M8 b+ @2 Z- z, j wcout<; ~4 W0 m, u' y j% v fgetc(stdin); # s9 \8 G9 R# x- e0 Y2 x return 0; . q* _& R4 f D- L v: V- J# Q} ) {; l/ u: T G0 Q$ F9 e/ F5 ~ /*& c, C+ w1 Y6 d, x5 ?: T 123.txt内容在下面一行的引号内,引号内第一个是空格 % d* [ t+ e% I9 J" #define" # ]0 m% x2 A1 D" N*/6 _* l) X! a3 |* @ 输出- }( g9 u2 ~" y (第一种情况和第二种情况都是下面的样子([U]#前面没有空格[/U]))0 B( u* }, P) m/ p& C9 ^0 U" i* g& n 14 P) p7 [9 R/ I( [7 j% {7 k: o #define+ H$ X9 A6 E- z5 H /////////////////////////////////////////////////////////////////////////////////////////// + G9 W1 K b- P# y2 `平台:    winxp0 n4 U0 |- y- z! k1 f% @; \ 编译器  [U]ms ml 8.0.50727.42 (vc++ 2005)[/U]---〉情况A' }6 K8 F, Z) h- ] [U]ms ml ????(忘了,就是vc++6.0的)[/U]---〉情况B 3 H! N2 N u% p' L/ l6 g$ j$ j输源代码 * u5 ~& |# w! q# C) \#include + J ]' K: @3 B) y" Y& k#include 1 y, Z+ \3 l" U/ y8 h* X) F/ x#include / W/ r$ M0 k, d: c#include 2 ]5 H' U0 Q1 p9 F/ s( z" H using namespace std;! w5 N% ^( J' r( J int main() ; [. T) h* Y' \8 _3 F# ]0 i6 D: p{ : H3 X* \5 `$ @4 e: z, b9 n& m //cout<<"Hello World\n"; c; x; y* @, } + C) K' N* R# Q% z+ ? //block until user types something ; `, E5 S$ {* m! u, X, { F# h H basic_ifstream fi; 2 s! ^4 D2 N; z wstring s; " C2 i" p; w6 e- n1 B: f$ F fi.open("123.txt");( R0 `* `' P5 e! g4 D5 y0 {4 t cout<0 d( Q& n3 B' t3 _ ws(fi);+ ?! S ~( C' x+ C/ Y //fi.tellg(); [U] //被注释掉[/U]---〉第一种情况- q/ j/ E* u% j3 ~! Q [U]//没被注释掉[/U]---〉第二种情况0 D! G8 {# E( _( T getline(fi,s); . C' ]( P2 J6 B6 J wcout<+ I# h8 Q3 c- ]0 C fgetc(stdin); $ V- ~" T: y. {( y! {: K& c0 P return 0; . }1 Y- y. S% K2 y} ; U" ?3 \0 c- E8 r3 X: c! I0 t* R; X4 m$ J /*% e& H% ?* @- z$ A 123.txt内容在下面一行的引号内,引号内第一个是空格3 q) s8 ^1 q: I" M" O- w6 _ " #define"( z, ~) r% {8 `% K9 Z( e */ & }; ]* k* j }7 P6 l输出 6 D* c: I( ]( f( J(情况A+第一种情况) % j( X, R8 ^! q3 X0 _ 1 7 m' n x' K& |#define , H j5 Z1 r/ m! @(跟g++一样)8 x j2 {7 J b (情况A+第二种情况)( A' t# K R- w+ D" s 1% Y q2 A, O5 g: ]2 x8 a define * x. n- h a* z( `5 M7 |# [* M(跟g++[U]不[/U]一样,少了#,是tellg()导致?)/ u! ]8 ]6 j# p( b) S/ e) Q //////////////////////////////////////////// ) q4 `2 T v% x3 H(情况B+第一种情况/第二种情况)* r& D6 N9 R! [! [ q 1 4 ~/ i0 B+ m4 f- L% K #define4 J2 a* k. ~( {" V5 n (跟g++[U]不[/U]一样,#前多了空格,ws没作用?) # `- L6 e Y, B u4 O6 f, _//--------------------------------------------------------------------------6 ^! C* w0 A q" M, v 评价如下:4 c8 R: ^" l5 O' x" ]+ P 按照理论 3 |, z0 k1 f* c7 t! qg++两种情况下的输出都是对的 & E }- S& L! p6 W! t* c' svc++2005只有第一种情况对 ( E/ b. _/ }7 _" J3 F/ V, Lvc++6两种情况都有问题 , @8 U2 ?7 L% v. R4 A现在的问题是,这样的评价有没有问题,输出为什么不同? 2 t! o3 Q2 s; E* p1 D3 u(本人希望得到g++的输出,根据文档就应该这样)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

该用户从未签到

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

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

回复 支持 反对

使用道具 举报

该用户从未签到

3
 楼主| 发表于 2006-3-27 22:10:00 | 只看该作者
难道就没人碰上过这个问题?? 1 H* E6 }5 S7 Q/ E, w* n9 }注: ( V L5 n/ R" j8 d3 H1楼帖子的内容显示是有问题的2 G( u) b+ I0 w! A 比如“#include”,后面的内容显示不出来/ s$ x, P4 l9 O7 J$ ^6 [ 比如“cout<”,后面的内容显示不出来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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