我有以下格式的多TSV文件:力FSCANF消耗可能的空白
Type\tBasic Name\tAttribute\tA Long Description\n
正如你所看到的,基本的名称和描述可以同时包含空格一些数字。我正在尝试读取每行并提取元素。现在,我已经缩小到只提取基本名称。我的fscanf如下:
fscanf(file_in, "%*[^ ]s\t%128[^ ]s\t%*[^ ]s\t%[^ ]s\n", name_string, desc_string);
这并不像我希望的那样工作,而且我无法缩小错误范围。有谁知道我该如何正确阅读这些文字?
啊,我明白了。我对使用[]有点困惑,但这是有道理的。虽然,我不确定在%128 [^ \ t]上看到使用%128 [^ \ t]%* [^ \ t]来读取数据的好处。 – Tanaki
@Tanaki因为如果限制为128个字符,它将在128个字符后停止扫描,并且字段中的其余字符将与下一个指令相匹配,该指令应与下一个字段匹配。 – rici
你是救命的人,我忘记了潜在的溢出! – Tanaki