廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4051 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
dfgkopeeed
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][討論] 設計能讀取檔案內容的程式問題
我現在假設我文件檔(檔名01.txt)的內容有38.117.232.0/24    32.112.45.0/24   1.53.48.0/20  這三個,我已經做出能讀取檔 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:臺灣教育部 | Posted:2011-12-05 09:12 |
Freelife
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x2 鮮花 x60
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

(1)先用"空白"字元,把3個子字串分離出來。
(2)每一個子字串,再用'/'做切割,就得到你想的結果。


獻花 x0 回到頂端 [1 樓] From:臺灣中華電信股份有限公司 | Posted:2011-12-05 09:48 |
dfgkopeeed
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我就是用空白換行的, 不過我現在的問題就是我要用我那個尾數(有24,28......)來分類輸出,我那三個只是其中幾個而已也就是我最後想輸出(以我那三個為例子) 



獻花 x0 回到頂端 [2 樓] From:臺灣教育部 | Posted:2011-12-05 10:05 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

讀取進來的方法有很多種,第一個要作的是用 char* 陣列來儲存三個 字串

arrS[0] = "38.117.232.0/24"
arrS[1] = "32.112.45.0/24"
arrS[2] = "1.53.48.0/20"

可以用 scanf 用 %s 方式一次讀一串,或是全部讀進來後,用 strtok 依照空白字元 切割



接下來要做分類的動作,作分類的動作之前,必須先得知每個 arrS 斜線後面的數字是多少

也是可以用 strtok 來作切割,再來用 atoi 轉換成數字

或是用 strrchr 來搜尋斜線,同樣動作用 atoi 轉換成數字



接下來分類我提供一個很簡單的方法 :

用另外一個陣列 arrNum[] 來記錄斜線後的數字,對應到同一 Index 的 arrS

只要將 arrNum 來排序,排序過程中任何兩個 Index 的數字 swap 時候,arrS 的字串也要跟著 swap


arrS[0] = "38.117.232.0/24"
arrS[1] = "32.112.45.0/24"
arrS[2] = "1.53.48.0/20"


arrNum[0] = 24
arrNum[1] = 24
arrNum[2] = 20


排序完後資料會像這樣 :

arrS[0] = "1.53.48.0/20"
arrS[1] = "38.117.232.0/24"
arrS[2] = "32.112.45.0/24"


arrNum[0] = 20
arrNum[1] = 24
arrNum[2] = 24


再把 arrS 用迴圈從 0 ~ 2 依序印出即可




這是一個我想出來的幾個簡單的方法,要更有效率可以用 List, Tree 等資料結構來作,但是稍顯複雜


My BOINC stats :

獻花 x0 回到頂端 [3 樓] From:臺灣教育部 | Posted:2011-12-05 13:05 |
dfgkopeeed
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

謝謝您的回答,我現在的困境是在我很有很多筆資料(幾千筆),我在想這樣的話要怎麼去做處理


獻花 x0 回到頂端 [4 樓] From:臺灣教育部 | Posted:2011-12-05 18:20 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

幾千筆的話,可以考慮 動態分配 來儲存資料

在 C 中就是用 malloc, calloc 的語法來動態分配記憶體,雖然執行速度會比 用陣列來的慢

好處是比較沒有長度的顧慮


(進階的作法是用 Array 搭配 動態分配,速度可以提升一點)



1000 多筆資料用 Quick sort 的排序法來排序資料也是很快的

實作一次就大概知道了,我猜應該也是 咻一下就顯示出來了


My BOINC stats :

獻花 x0 回到頂端 [5 樓] From:臺灣教育部 | Posted:2011-12-05 23:56 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.022232 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言