我是與c合作的全新品牌。我有以下格式樣式文件:如何使用fscanf獲取具有多個分隔符的數字?
number:number,number,number
反正我有可以使用fscanf
獲得從該文件中的數字?
下面我的代碼無法正常工作:
fscanf(file,"%d%[^:]:%d%[^,],%d%[^,],%d",&one,something,&two,something3,&three,something4,&four);
我是與c合作的全新品牌。我有以下格式樣式文件:如何使用fscanf獲取具有多個分隔符的數字?
number:number,number,number
反正我有可以使用fscanf
獲得從該文件中的數字?
下面我的代碼無法正常工作:
fscanf(file,"%d%[^:]:%d%[^,],%d%[^,],%d",&one,something,&two,something3,&three,something4,&four);
你不需要%[^:]
部分在那裏,你可以把分隔符爲格式字符串直接:
int a, b, c, d;
while (scanf("%d:%d,%d,%d",&a,&b,&c,&d) == 4) {
printf("%d %d %d %d\n", a, b, c, d);
}
完美運作!非常感謝你!我們將不得不使用我試圖放在那裏的「%[^:]」的情況是什麼?或者那根本就不需要? – Vimzy
@Vimzy'%[^ ...]'格式用於讀取字符串。您可以在'%'後面使用星號來跳過相應的輸入。但是,當你讀取數字時通常不需要,因爲'scanf'會自動跳過空格。 – dasblinkenlight
@Vimzy考慮「1:2,3,4」這裏有一個額外的空間_before_逗號分隔了'scanf'。 – Matt
掃描整行,然後使用'strtok'代替。 –
@barakmanos我需要使用fscanf進行鍛鍊。 – Vimzy