我工作在C基本命令行的音樂庫,讓你打開通過命令行一個文件的多個普通分隔符的文件,並且像一個藝術家,歌曲名稱,並每年出版添加信息。一旦它退出,它就會將這些信息寫回到同一個文件中。解析使用C
我在試圖找到一個解決方案,以正確地解析文本文件的問題。
例如,輸入文件將是這個樣子:
Title: Heirloom, Artist: Basenji, Year Published: 2014
Title: With Me, Artist: Cashmere Cat, Year Published: 2014
我工作的指定項目(針對常見的做法),我們一行信息存儲在一個struct Song
看起來像這樣:
struct Song {
char title[250];
char artist[250];
int year_published;
};
每個Song
存儲在struct Song
類型的數組,稱爲music_lib[]
。
我知道該怎麼做每一行分成一個特定struct Song
:
while(fscanf(input_file, "%s %s %ld", *temp_title, *temp_artist, *temp_year) != EOF)
copy_song_to_music_library(temp_title, temp_artist, temp_year);
什麼我不知道該怎麼做的是如何正確地分析文本文件,這樣當我有一個已知的格式:
Title: Heirloom, Artist: Basenji, Year Published: 2014
對於我的頭銜變量,我得到的「傳家寶」(和標題:被剝離出來),我的藝術家變量,我得到「尋租basenji」(與藝術家:剝離出來),和我年份變量我得到2014年(與年份publis hed:剝離出來)。
有沒有簡單的方法來做到這一點?
你試過'「標題:%s,藝術家:%s,發表年份:%ld」'? – tumdum
@TomaszKłak'「標題:%s,...'不適用於像」With Me「這樣的空間的標題 – chux