1
我想計算CSV文件中的「列」,因爲它的元素的字符串模式是例如。未能匹配的scanf(「...%n」,...)
1,2,3,4
與模式 「%d」,應該返回4.
我寫了這樣的
offset = 0;
strcpy(var_pattern, pattern) // e.g. pattern = "%d,"
strcat(var_pattern, "%n")
while (sscanf(&line[offset], LINE_SIZE, buf,var_pattern,&bytes_consumed > 0) {
count++; // column counter
offset += bytes_consumed
};
一個標記我的問題是缺少分隔符, '' 中的示例,用於CSV文件行中的最後一個元素。上LINUX64/GCC做
c = sscanf("12","%d,%n",&a,&b)
給出C = 1(的匹配的模式號),= 12和b = 32767(消耗的字節)。這(愚蠢的)行爲標準/平臺是否具體?還是一個錯誤?
我知道strtok或正則表達式打包,但我會喜歡使用標準方法,並且使用strtok的想法使我內在的軟件工程師puke。
TIA