請幫我。我是編程新手。我一直在嘗試和尋找幾天來回答這個問題。
我需要一個可以打開名為 users.txt 的文本檔案的 C 程式
在那個文本檔案中有名字,然后是逗號和他們的學校。
John Paul, Legit Univ
Paul John, Yo Univ
Lebron James, School Univ
James Lebron, Legit Univ
到目前為止,我所做的只是將它們全部顯示出來。輸出應該是來自的所有用戶"Legit Univ"。
樣本輸出:
Found 2 users from Legit Univ
John Paul
James Lebron
uj5u.com熱心網友回復:
用于fgets()將檔案中的一行讀入字串,然后strchr() 查找逗號 ',' 欄位分隔符在字串中的位置(或者strstr()如果欄位分隔符是逗號空格“,”)。現在,您可以使用 . 檢查欄位分隔符后的字串部分是否與您的查詢匹配strcmp()。除了決議檔案,您還可以使用正則運算式并匹配字串。
uj5u.com熱心網友回復:
另一種方法是一次加載一行(正如您所做的那樣)。然后,使用strstr(). 如果找到,則在逗號處進行修剪(可能strtok()并輸出名稱(puts())。如果未找到,則繼續下一條記錄(輸入行)。
不要做比你必須做的更多的處理。
不過,“在 Legit Univ 找到 2 個用戶”有點問題。您可以在計算“命中”時緩沖鏈表中的名稱,或者您可以更改輸出以在名稱報告后列印“命中”的計數。(或者,更糟糕的是,您可以處理檔案一次以計數、倒帶,然后輸出“用戶”名稱的計數......)輸出的要求有多嚴格?
uj5u.com熱心網友回復:
您可以使用以下內容獲取字串:
fscanf(<stream_name>,"%[^,] %s",<string_name_1>,<string_name_2> )這里%[^,]基本上意味著讀取,直到您看到一個逗號并將其存盤在 <string_name_1> 中,并將其余部分存盤在 <string_name_2> 中。之后,您需要做的就是strncmp <string_name_2> 與您要搜索的大學名稱,如果strncmp 的結果為零,則表示寫入的內容與您要搜索的內容相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511780.html
標籤:C细绳文件
