2011-01-27 15 views
2

satuation is .....バッファ(* buff [])にたくさんのmacアドレスを1つずつ格納していますが、今私は1つずつMACアドレスを抽出し、COMMAによってcで区切られたファイルに書きたいと思う。char配列を書き込むにはどうすればいいですか?

HELP !!! THNXXX!彼らはない文字列をしている場合、あなたはおそらく、より詳細にデータを指定する必要があり、

FILE *fout = fopen ("output.txt", "w"); 
if (fout != NULL) { 
    char *sep = ""; 
    for (int i = 0; i < sizeof (buff)/sizeof(*buff); i++) { 
     fprintf (fout, "%s%s", sep, buff[i]); 
     sep = ","; 
    } 
    fclose (fout); 
} 

:彼らは文字列をしている場合は

+1

通常通り:あなたは何を試しましたか? –

答えて

2

、あなただけのようなものを使用することができます。どちらの場合でも、ロジックは同じですが、変更されるのはMACアドレスを出力する方法だけです。

配列がいっぱいでない場合は、配列変数ではなくループを制御するためにcount変数を使用してください。

+0

"buff"が静的に割り当てられていると仮定しています。つまり、buffはchar * buff [10]です。代わりに、 "buff"が関数のパラメータである場合、void func(char * buff []);あなたのコードは動作しません。これは元の投稿ではっきりしていません。また、ループ内に "i"というC++宣言を記述しています。 – Lundin

+1

はい、私は前提を作った、それは質問の完全な詳細の不足のために必要だった - それはまさに私が "何かを使って"と言った理由です。しかし、 'for'ループの' int'は単なるC++の機能ではなく、C99にもあります。 – paxdiablo