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

從資料.txt找出資料來比對問題

答題得分者是:twinstart
duncan0618
一般會員


發表:6
回覆:3
積分:1
註冊:2007-10-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-01-09 01:19:02 IP:122.124.xxx.xxx 訂閱
我要分別輸入 姓名 性別 興趣
性別不同的才做興趣配對相似70% 配對成功
先判斷性別,不同性別再進行興趣配對,印出配對成功的名子

電腦擇友配對資料表單
興趣
1. 聽古典音樂 (是/否) 2. 喜歡聽流行音樂 (是/否)
3. 喜歡登山(是/否) 4. 喜歡看電影 (是/否)
5. 喜歡恐怖電影(是/否) 6. 喜歡喜劇片 (是/否)
7. 喜歡辛辣食物(是/否) 8. 喜歡清淡口味 (是/否)
9. 喜歡跳舞(是/否) 10. 喜歡上網 (是/否)

data.txt
Tomm M 1010101010
Mary F 1000100011
ETFE M 1000111101
Bood F 1011101100
Vaid M 1001100100
Rood F 1111011101
NoNo M 0100101100
Coco F 1011100101
Vava M 0111011111
Hoho F 1001111110

我一直抓不到我要的資料
[code cpp]
#include
#include
#include
#include
#include
void main()
{
char name[15];
char gender[10];
char habit[10];
const int MAX = 80;
char buffer[MAX];
ifstream inFile("data.TXT"); // 開啟要讀取的檔案
while(inFile) // 從檔案讀資料
{
inFile.getline(buffer,MAX); //以行為單位讀入
cout<< buffer << endl;
}
// cout << flush; // 強迫列印出來
int k=0;
int sum=k;
cout<<"電腦擇友配對資料表單\n";
cout<<"興趣\n";
cout<<"1. 聽古典音樂 (是/否) 2. 喜歡聽流行音樂 (是/否)\n";
cout<<"3. 喜歡登山(是/否) 4. 喜歡看電影 (是/否)\n";
cout<<"5. 喜歡恐怖電影(是/否) 6. 喜歡喜劇片 (是/否)\n";
cout<<"7. 喜歡辛辣食物(是/否) 8. 喜歡清淡口味 (是/否)\n";
cout<<"9. 喜歡跳舞(是/否) 10. 喜歡上網 (是/否)\n\n";
cout<<"請輸入姓名:";
cin>>name;
cout<<"請輸入性別(M/F):";
cin>>gender;
cout<<"請輸入興趣:";
cin>>habit;

if((*buffer^*habit)==0) //XOR
k ;
sum>6;
cout<<"配對成功"< inFile.close();
}
[/code]
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-01-09 02:03:46 IP:61.64.xxx.xxx 訂閱
你先弄清楚
是檔案讀不到,還是使用者輸入抓不到
===================引 用 duncan0618 文 章===================
我要分別輸入 姓名 性別 興趣
性別不同的才做興趣配對相似70% 配對成功
先判斷性別,不同性別再進行興趣配對,印出配對成功的名子

電腦擇友配對資料表單
興趣
1. 聽古典音樂 (是/否) 2. 喜歡聽流行音樂 (是/否)
3. 喜歡登山(是/否) 4. 喜歡看電影 (是/否)
5. 喜歡恐怖電影(是/否) 6. 喜歡喜劇片 (是/否)
7. 喜歡辛辣食物(是/否) 8. 喜歡清淡口味 (是/否)
9. 喜歡跳舞(是/否) 10. 喜歡上網 (是/否)

data.txt
Tomm M 1010101010
Mary F 1000100011
ETFE M 1000111101
Bood F 1011101100
Vaid M 1001100100
Rood F 1111011101
NoNo M 0100101100
Coco F 1011100101
Vava M 0111011111
Hoho F 1001111110

我一直抓不到我要的資料
[code cpp]
#include
#include
#include
#include
#include

void main()
{
char name[15];
char gender[10];
char habit[10];
const int MAX = 80;
char buffer[MAX];
ifstream inFile("data.TXT"); // 開啟要讀取的檔案
while(inFile) // 從檔案讀資料
{
inFile.getline(buffer,MAX); //以行為單位讀入
cout<< buffer << endl;
}
// cout << flush; // 強迫列印出來
int k=0;
int sum=k;
cout<<"電腦擇友配對資料表單\n";
cout<<"興趣\n";
cout<<"1. 聽古典音樂 (是/否) 2. 喜歡聽流行音樂 (是/否)\n";
cout<<"3. 喜歡登山(是/否) 4. 喜歡看電影 (是/否)\n";
cout<<"5. 喜歡恐怖電影(是/否) 6. 喜歡喜劇片 (是/否)\n";
cout<<"7. 喜歡辛辣食物(是/否) 8. 喜歡清淡口味 (是/否)\n";
cout<<"9. 喜歡跳舞(是/否) 10. 喜歡上網 (是/否)\n\n";
cout<<"請輸入姓名:";
cin>>name;
cout<<"請輸入性別(M/F):";
cin>>gender;
cout<<"請輸入興趣:";
cin>>habit;

if((*buffer^*habit)==0) //XOR
k ;
sum>6;
cout<<"配對成功"<<
inFile.close();
}
[/code]
twinstart
一般會員


發表:4
回覆:7
積分:17
註冊:2007-12-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-01-11 15:45:31 IP:60.250.xxx.xxx 未訂閱
這篇文章的問題跟這篇應該沒什麼差別吧@@
如何從檔案.dat中跟輸入的資料作配對
http://delphi.ktop.com.tw/board.php?cid=168&fid=1499&tid=92095

我想你心裡大概知道你要做什麼了,只是不知道要用哪些函式,
通常遇到這種時候,我都會利用站上的搜尋功能,找尋關鍵字,
例如你的這個問題就可以搜尋「讀檔」,多利用搜尋功能可以讓自己早點找到答案唷~~

建議你使用的函式,
(查詢一下MSDN或BCB6的Help說明,或是在站上搜尋這些函式,就知道怎麼用啦!!)

1. 讀檔: fopen 開啟檔案, fgets 讀一行。
2. 分割字串:用strtokstrchr 將一行資料分割成姓名,性別和興趣。
3. 比對字串:用strcmp比對輸入的姓名,再用strcmp比對性別是否不相同。
4. 最後計算配對程度,完成!!

-------
我也是新手,這個問題我也試了很久!!@@
編輯記錄
twinstart 重新編輯於 2008-01-11 15:48:12, 註解 無‧
系統時間:2024-03-29 23:47:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!