2013-02-25 566 views
0

我開始開發一個新的程序(用於學校項目),其中用戶登錄並具有像頁面一樣的「時間線」。目前它是一個簡單的命令行C項目。如何檢查文本文件中的「分隔符」?

我想在文本文件中的數據存儲方式如下:

#  
Message here Message here Message here Message here Message here Message here 
Message here Message here Message here Message here Message here Message here 
Message here Message here Message here Message here Message here Message here 
# 
Message2 here Message2 here Message2 here Message2 here Message2 here Message2 here 
Message2 here Message2 here Message2 here Message2 here Message2 here Message2 here 
# 
...etc 

我知道如何來存儲數據,這純粹是一個「寫在結束」功能。我的問題涉及該文件的閱讀。 我希望能夠檢查「#」字符或我放入的任何字符來分隔消息並閱讀消息,將其存儲在結構中,在命令行中顯示它,然後繼續下一個標記,顯示message2等等。

有沒有一個「好」,或者我應該說改進方式在C做這個?

對不起,如果這裏沒有真正的代碼,我只是在實際啓動代碼之前想到未來。

非常感謝您提前幫助或至少嘗試任何人!

+1

請參閱http://whathaveyoutried.com/和http://programmers.stackexchange.com/。 – 2013-02-25 22:58:41

+0

如果*分隔符*之間的行數是固定的,那麼您甚至不需要*分隔符*。否則,你必須自己使用一個* unique *行。 C沒有任何花哨的API。但是你的方法是合理的。 – 2013-02-25 23:01:39

+0

1)每次閱讀一個字符,並適當地行動。 2)使用strspn()/ strcspn()並適當地進行操作。 3)使用可怕的strtok()函數或其可重入對象。 4)接下來! – wildplasser 2013-02-25 23:09:41

回答

2
  1. 可以讀取整個文件到一個變量(必須是足夠大的,所以你必須使用動態內存分配),然後「分化」它分開使用功能strtok並作爲分隔符#消息。

  2. 您可以簡單地開始讀取字符後的文件char並將其保存到一個變量,並且當您當前的字符是#時,變量將存儲完全1個消息,並且您可以繼續讀取下一條消息並將其保存到新變量,或者任何你想要存儲它的地方。

有很多方法可以做到這一點,只需選擇一個最適合您的方法即可。

+0

非常感謝您的回答。直到現在我還不知道strtok函數。我會仔細看看的 !再次感謝 ! – blackjak231 2013-02-26 10:57:36

+0

不客氣。 :) – sobol6803 2013-02-26 15:46:13

相關問題