2017-11-19 34 views
0

私はC言語の新機能で、JSONをファイルに書き込む必要があります。 文字通り、strにintを追加するための作業方法を探していました。strcatを呼び出すと例外が発生する

int day = 1; 

char strDay = (char) day; 
char str[100]; 
strcpy(str, "Blockchain"); 
strcat(str, strDay); 

すべてはstrcatの呼び出しまでうまく機能:

は、ここに私のコードです。 ありがとうございます

EDIT:ファイルに私の構造体を書き込むために使用しています。

{ 
"Blockchain": { 
    "Block1": { 
     "Day": 2, 
     "Transaction1": { 
      "ID": 1, 
      "Amount": 2 
     } 
    }, 
    "Block2": { 
     "Transaction2": { 
      "ID": 2, 
      "Amount": 5 
     } 
    } 
}} 

はそれを行うために、私はパーソンのLIBを使用して、それがそのように動作します:

json_object_dotset_number(root_object, "Blockchain.Block1.Transaction1.ID", tmpTransaction->accountID); 

は私がみとめブロックとトランザクションを作成する方法を必要としているのです。ここJSONファイルがどのように見えるかですなぜ私はブロックとIDにトランザクションの日を追加することを考えた。

+4

このコードはコンパイルすべきではありません。 –

+0

JSONの解析で文字列に 'int'を追加する必要はありますか? – melpomene

+3

strcat()2番目の引数は文字列ではない – achal

答えて

1

実現している可能性が高いので、strcatは文字列でのみ動作します。 sprintfsnprintfを調査する必要があります。たとえば、

{ 
    char string[80]; 
    int dayNumber; 

    dayNumber = 27; 
    sprintf(string, "\"Block1\": {\n\t\"Day\": %d,\n", dayNumber); 
... 

明らかに、私はあなたの文字列全体を作成しようとしていません。また、これは完全なコードとはみなされません。マジックナンバー(80文字の文字列バッファーのようなもの)を使うのは悪い習慣です。これは単なる例です。

関連する問題