带冒号(:)分隔数据的fscanf
我如何fscanf
这段数据? 数据和分隔符之间没有空行是':'
VS1234567890654327:Rob Fordfirst:001:200 VS1234567890654312:Steven Harper:200:010
我的代码
while(3==fscanf(filename, "????", &string[size], &name[size], &number1[size], &number2[size])) { //printf("%s - %s - %.3d - %.3d", string[size], name[size], number1[size], number2[size])); size++; }
您可以将分隔符作为格式的一部分包含在fscanf
,如下所示:
while (4 == fscanf(filename, "%[^:]:%[^:]:%d:%d", string[size], name[size], &number1[size], &number2[size])) { ... }
请注意使用%[^:]
格式说明符。 它说“除了':'
之外':'
任何字符都被接受”。 另请注意, char*
参数在没有&符号的情况下传递,因为它们已经是指针。
在ideone上演示。