晚上的最後一個問題。我儘量不要發帖超過每次鬥爭哈哈...從C輸入文件中讀取特定短語
這個更簡單一點。
我有一個txt文件,前8行中有一系列排列的數字。之後的每一行都是一個特定的短語,比如「購買物品」或「獎品」,後面跟着一個整數(有幾個短語,但我只關注一個短語)。基本上,我試圖有一個for或while循環,我可以檢測文檔中的短語,將指針設置爲短語的結尾,然後fscanf將短語右側的整數。我遇到的唯一困難是將指針指向特定短語的結尾,然後讀取數字。以及這個短語在不同的行上重複,而且我不希望這些值一次全部被採用。
我敢肯定,我可以做一個簡單的
while (!feof(//function for reading phrase)) {
fscanf("%d", &value);
//rest of function
這將是。但我已經嘗試過fseek和fget,沒有任何東西能真正幫助我獲得指向我需要的位置的指針,而沒有預先設置的位置。輸入文件每次都會有所不同,所以我不能只是告訴它去1024個空格或類似的東西。只是不知道你怎麼會這樣...
下面還是一個輸入文件的例子。
75 75 908
10 10
18 23.10 10.09
70 5 15
8 100 20 28.99
30 40 50 60
4 6 8 8 5 5 5 6 7 10
10
BUY ITEM 8
BUY ITEM 10
AWARD ITEM 7
BUY ITEM 1
BUY ITEM 3
AWARD ITEM 9
BUY ITEM 7
RETURN ITEM 8
非常感謝任何人的幫助。
如果沒有指定的文件格式,您必須閱讀每一行,直到找到它。沒有比這更復雜的了。而不是「設置指針」和「然後讀取數字」,只需讀取整行,並從中提取您的數字,如果你得到一個匹配。 – 2014-09-27 00:41:04
如果我得到一場比賽,我將如何閱讀每一行然後提取數字?這聽起來像fseek有點兒交易對嗎? – Darksider13 2014-09-27 00:49:50
不,請使用'fgets()'獲取整行,然後使用'fscanf()'或'strtol()',或者沿着這些行獲取數字。如果你的文件總是遵循這種格式,並且你知道你的行以'BUY ITEM'開始,然後是空格,那麼你就會知道你的編號從字符串的第10個字符開始。 – 2014-09-27 00:51:07