C++ istrstream class 的正確使用方法? |
尚未結案
|
asd98537
一般會員 發表:27 回覆:25 積分:10 註冊:2002-10-23 發送簡訊給我 |
#include strstream.h char buff1[] = "123 39 stream"; char buff2[] = "456 88 abcde" ; int a; int b; char str1[10]; //第一次用constructor讀進buffer1,再讀進格式化的資料ok istrstream mem(buff1,sizeof(buff1)); mem>>a>>b>>str1; mem.get(buff2,sizeof(buff2)); mem>>a>>b>>str1; 第二次再讀buff2,不管是用read 、get、getline這些函式解析出來的格式化資料都不正確 請問哪裡出錯了?讀進buff2之前,要再作什麼清除動作嗎?發表人 - asd98537 於 2003/04/08 13:35:13 |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言:asd98537 你好: 先參考這篇文章吧#include strstream.h char buff1[] = "123 39 stream"; char buff2[] = "456 88 abcde" ; int a; int b; char str1[10]; //第一次用constructor讀進buffer1,再讀進格式化的資料ok istrstream mem(buff1,sizeof(buff1)); mem>>a>>b>>str1; mem.get(buff2,sizeof(buff2)); mem>>a>>b>>str1; 第二次再讀buff2,不管是用read 、get、getline這些函式解析出來的格式化資料都不正確 請問哪裡出錯了?讀進buff2之前,要再作什麼清除動作嗎?
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
asd98537
一般會員 發表:27 回覆:25 積分:10 註冊:2002-10-23 發送簡訊給我 |
a solution class CStrScan : public istrstream
{
private:
char strbuff[1024];
public:
CStrScan(): istrstream(strbuff,sizeof(strbuff)){}
void r2b(char *buff,int size) { seekg(0,ios::beg); strcpy(strbuff,buff);}
}; CStrScan memin;
memin.r2b(buff1,sizeof(buff1));
memin >> a >> b >> str1; memin.r2b(buff2.sizeof(buff2));
mem >> a >> b >> str1;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |