使用 sscanf 、选项卡格式化日志文件

Formating a log file using sscanf , tabs

本文关键字:格式化 日志 文件 选项 sscanf 使用      更新时间:2023-10-16

这是文件

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("%ss",var2);
    getchar();

我的代码不起作用

我也已经这样尝试过了

sscanf(Temp, "%st%st%st%st%st%st%st%s"

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

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

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

如果要

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