带冒号(:)分隔数据的fscanf

use*_*378 0 c field file scanf

fscanf这条数据怎么样?数据和分隔符之间没有空行':'

VS1234567890654327:Rob Fordfirst:001:200
VS1234567890654312:Steven Harper:200:010
Run Code Online (Sandbox Code Playgroud)

我的代码

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++;
}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 6

您可以将分隔符作为格式的一部分包含在内fscanf,如下所示:

while (4 == fscanf(filename, "%[^:]:%[^:]:%d:%d", string[size], name[size], &number1[size], &number2[size])) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

请注意%[^:]格式说明符的使用.它说"除了':'被接受的任何字符".另请注意,char*参数传递时没有符号,因为它们已经是指针.

在ideone上演示.