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 ???") 変数間の各スペースは (0x09) で、タブを意味します

(完全なコードへのリンクhttp://pastebin.com/d7yvMVJr )

4

1 に答える 1

0

すべてのフィールドを文字列として扱う場合は、書式指定子文字列でタブ文字を指定する必要はありません。*scanf関数ファミリは、デフォルトで空白を無視します。さらに、戻り値の型をチェックして、sscanf8 つの項目すべてが読み取られていることを確認します。

于 2012-06-11T15:00:15.293 に答える