線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:946
推到 Plurk!
推到 Facebook!

關於讀txt內容的型式問題?

答題得分者是:GeorgeKu
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-12 11:33:16 IP:59.114.xxx.xxx 未訂閱
各位大大: 小弟 有一個頭痛的問題, 就是小弟的txt檔的資料型式如式: pattern0 : 0.383641004562378編號: 94 0.445722013711929編號: 0 0.649141013622284編號: 35 pattern1 : 0.227521002292633編號: 1 0.462080001831055編號: 2 0.467552006244659編號: 96 pattern2 : 0.197088003158569編號: 2 0.461710005998611編號: 47 0.498567998409271編號: 72 現在小弟需要用到將像0.383641004562378、0.445722013711929、…這些值讀 入像data 的陣列裡,而編號後面的94、0、…讀入 num的陣列裡,而像pattern1、pattern2、…及"編號"這些東西都是不要的, 加上如:0.383641004562378編號: 94 彼此間又沒空格,那小弟應如何做??? 謝謝
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-12 12:06:59 IP:59.104.xxx.xxx 未訂閱
引言: pattern0 : 0.383641004562378編號: 94 0.445722013711929編號: 0 0.649141013622284編號: 35 pattern1 : 0.227521002292633編號: 1 0.462080001831055編號: 2 0.467552006244659編號: 96 pattern2 : 0.197088003158569編號: 2 0.461710005998611編號: 47 0.498567998409271編號: 72 現在小弟需要用到將像0.383641004562378、0.445722013711929、…這些值讀 入像data 的陣列裡,而編號後面的94、0、…讀入 num的陣列裡,而像pattern1、pattern2、…及"編號"這些東西都是不要的, 加上如:0.383641004562378編號: 94 彼此間又沒空格,那小弟應如何做???
還好吧。 用 fgets 讀進一行。 看看是不是換行。 是就讀下一行。 看看第一個字元是不是0,是0就是資料。不是0就是PXXX。就再讀下一行。 這樣直到檔尾。 而我看你的資料是定長的。 所以你可以直接把0-16的資料COPY出來。 strncpy 出來就是第一個資料。 然後利用一個字串指標 (char *) 指到22位置,就可以把後面的值取出了呀。
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-12 13:04:31 IP:61.228.xxx.xxx 未訂閱
glenn,    用個偷雞步參考看看:
int main(int argc, char *argv[])
{
    string str;    
    double data[20];
    int num[20];
    int count=0;
    fstream file("test.txt",ios::in);
    while(file>>str>>str){
            for(int i=0;i<3;i  ){
                 file>>data[count]>>str>>num[count];
                 count  ;
                 }
            }
    file.close();
    for(int i=0;i     
        
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-12 17:24:25 IP:59.114.xxx.xxx 未訂閱
GeorgeKu大大, 小弟一開始接觸程式就是C , 所以C的話小弟還不是很懂, 雖然小弟有馬上拿C語言的書,馬上惡補, 但你給我的程式 還是不能跑, 但小弟有試一下暗黑破壞神大大的方法, 要的資料是全找到了, 是當初是宣告char的型式 , 但我要的一個是float,一個是int的, 那我要如何變過來?? 謝謝
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-12 17:37:30 IP:61.228.xxx.xxx 未訂閱
glenn,    我給你的CODE就是C++的語法,所以我不知道你現在的問題是在哪裡,是否是標頭檔你沒有宣告?
#include 
#include 
#include 
using namespace std;
是否可以把你有問題的地方po出來.
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-12 18:00:21 IP:59.114.xxx.xxx 未訂閱
GeorgeKu大大, 小弟少了下面這幾個, #include  #include using namespace std; 小弟再次使用後, 真的可以了! 真的非常感謝
glenn
一般會員


發表:24
回覆:21
積分:9
註冊:2004-03-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-12 18:04:57 IP:59.114.xxx.xxx 未訂閱
對了,小弟想再請教一個問題, 就是下面這兩段code fstream file("test.txt",ios::in); while(file>>str>>str) 首先是ios::in是什麼意思? 還有file>>str>>str是什麼意思呢? file是什麼東西?為什麼不用宣告?
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-12 18:29:32 IP:61.228.xxx.xxx 未訂閱
file是fstream的物件名稱,ios::in是宣告這個檔案物件為讀取,有關於它的宣告方式你可以參考c 相關書籍. file>>str>>str; 開始我有宣告str為string的物件,所以檔案會開始先將pattern0讀進第一個str,而:讀進第二個str,接著就是讀浮點數字,利用這個原理把你所需要的資料一一讀進需要的資料結構.
系統時間:2024-06-16 9:08:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!