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

將文字與數字一起讀檔的問題

答題得分者是:jimmychn
piliboy
一般會員


發表:4
回覆:8
積分:2
註冊:2008-08-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-17 21:08:43 IP:140.116.xxx.xxx 訂閱
這是我的txt檔
小黃 81
小白 76
小黑 65
小頭 42
小人 99

我無法讀出中文字,連數字也讀成亂數.請大家一起動動腦
幫忙解一下


[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ifstream fin;
fin.open("C:\\bcb\\ex3\\test.txt");
char s[100];
int n[10];
while (!fin.eof())
{
for(int i=0;i<5;i )
{
fin>>s[i]>>"">>n[i];
}
}
for(int j=0;j<20;j )
Memo1->Lines->Add(s[j] n[j]);
}
[/code]
------
有自信的人 不一定成功
但沒有自信的人 一定失敗
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-19 17:43:33 IP:60.248.xxx.xxx 訂閱
提示一下:   char s[100]; 是指總共只能放100個英數字。 s[i]能放下的是一個字,不是字串。

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
piliboy
一般會員


發表:4
回覆:8
積分:2
註冊:2008-08-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-19 17:55:05 IP:122.123.xxx.xxx 訂閱
我知道結構可以寫出來
但是如果不以結構寫
直接利用矩陣去讀檔要如何讀呢
------
有自信的人 不一定成功
但沒有自信的人 一定失敗
jimmychn
一般會員


發表:3
回覆:21
積分:19
註冊:2002-09-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-23 20:41:04 IP:61.230.xxx.xxx 訂閱
按照敘述應該是讀入檔案,並分開儲存在字串陣列與數字陣列。不知是否合意???

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s[10];
int n[10];
TStrings *sList=new TStringList();

Memo1->Lines->LoadFromFile("TEST.TXT");
for(int i=0;iLines->Count;i ) {
sList->CommaText=Memo1->Lines->Strings[i];
if (sList->Count>=2) {
s[i]=sList->Strings[0];
n[i]=sList->Strings[1].ToInt();
}
}

[/code]
------
>>>好心有好報
編輯記錄
jimmychn 重新編輯於 2008-09-23 20:41:44, 註解 無‧
jimmychn 重新編輯於 2008-09-23 20:42:33, 註解 無‧
jimmychn 重新編輯於 2008-09-23 20:44:43, 註解 無‧
jimmychn 重新編輯於 2008-09-23 20:46:03, 註解 無‧
piliboy
一般會員


發表:4
回覆:8
積分:2
註冊:2008-08-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-24 11:56:34 IP:140.116.xxx.xxx 訂閱
你的方法正是我想要的 想了好久想不出來
不過我還有兩個問題 請問一下

1. CommaText 的用法
2. n[i]=sList->Strings[1].ToInt();
n[i] 為什麼還要再轉成 int ,一開始不就宣告成 int 矩陣了嗎
------
有自信的人 不一定成功
但沒有自信的人 一定失敗
jimmychn
一般會員


發表:3
回覆:21
積分:19
註冊:2002-09-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-25 10:08:17 IP:61.30.xxx.xxx 訂閱
1.CommaText 是把字串陣列化成由逗號或空格分隔開來的字串列,它是雙向(Get/Set)的喔!
例: sList->CommaText="123,abc def,\"ghi jkl\""; 相當執行右列全部程序 sList[0]="123"; sList[1]="abc"; sList[2]="abc"; sList[3]="def"; sList[4]="ghi jkl";

2.n[i]這個元素是int,但右邊的字串陣列(sList)元素是字串(AnsiString),必須轉型成 int 才能存入int 陣列中!
===================引 用 piliboy 文 章===================
你的方法正是我想要的 想了好久想不出來
不過我還有兩個問題 請問一下

1. CommaText 的用法
2. n[i]=sList->Strings[1].ToInt();
n[i] 為什麼還要再轉成 int ,一開始不就宣告成 int 矩陣了嗎
------
>>>好心有好報
piliboy
一般會員


發表:4
回覆:8
積分:2
註冊:2008-08-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-09-25 10:20:41 IP:140.116.xxx.xxx 訂閱

真是非常謝謝你
我要趕快去試試看囉!!!
------
有自信的人 不一定成功
但沒有自信的人 一定失敗
編輯記錄
piliboy 重新編輯於 2008-09-25 10:21:15, 註解 無‧
piliboy 重新編輯於 2008-09-25 10:21:52, 註解 無‧
系統時間:2024-05-04 19:58:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!