Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用sscanf、选项卡格式化日志文件_C++_File_Tabs_Formatting_Scanf - Fatal编程技术网

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

C++ 使用sscanf、选项卡格式化日志文件,c++,file,tabs,formatting,scanf,C++,File,Tabs,Formatting,Scanf,这是文件 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ק01

这是文件

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??) 变量之间的每个空格都是(0x09),表示制表符


(链接到完整代码)

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

以何种方式不起作用?何时我输出了错误的数据,这个非常相关的问题
fgets
会一直读到换行符或EOF。这就是你想要的吗?
fgets
可以一次从控制台获取一行。但是,仍然需要解析该字符串,并且你需要类似于
sscanf
的东西。但是,有其他方法如
strtok
(不安全)和
strcspn
,您可以使用它们来标记您的输入。最后的努力是迭代每个字符并自己标记字符串。