0

这是文件

0   4fd4074a    12  1   1a740   3   2   @BOק15  
1   4fd4074a    12  1   1873c   3   2   @BN15  
2   4fd4074a    12  1   276b6   3   2   @BOק0120  
3   4fd4074a    12  1   5de0    3   2   @BOק15  
4   4fd4074a    12  1   24115   3   2   @BOק0120  
5   4fd4074a    12  1   1ff079  3   2   @BOק0120  
6   4fd40750    12  1   24115   3   2   @BN0120  
7   4fd40751    12  1   ec54    3   2   @BN15 

如何使用 sscanf 读取它?

    Temp = getLineByHandle(fileHandler);
    // ----
    char var1[1024] = {0};
    char var2[1024] = {0};
    char var3[1024] = {0};
    char var4[1024] = {0};
    char var5[1024] = {0};
    char var6[1024] = {0};
    char var7[1024] = {0};
    char var8[1024] = {0};
    // ----
    sscanf(Temp, "%s/t%s/t%s/t%s/t%s/t%s/t%s/t%s", var1, var2, var3, var4, var5, var6, var7, var8);
    // ----
    printf("%s\s",var2);
    getchar();

我的代码不起作用

我也试过这样

sscanf(Temp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s"

那么我该如何格式化这种类型的格式

表中的最后一个变量是这样的字符串(消息) (hello wsup ???") vars 之间的每个空格都是 (0x09) 表示制表符

(链接到完整代码http://pastebin.com/d7yvMVJr

4

1 回答 1

0

如果要将所有字段视为字符串,则无需在格式说明符字符串中指定制表符。默认情况下*scanf,函数族忽略空格。此外,检查返回类型sscanf以确保已读取所有八项。

于 2012-06-11T15:00:15.293 回答