2017-11-19 8 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() 두 번째 인수는 단일 문자가 아닌 문자열 – achal

답변

1

실현 가능성이 높기 때문에 strcat은 문자열에서만 작동합니다. sprintfsnprintf을 조사해야합니다. 예 :

{ 
    char string[80]; 
    int dayNumber; 

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

분명히 전체 문자열을 만들려고하지 않습니다. 또한, 이것은 완전한 코드로 간주되어서는 안됩니다. 마술 번호 (80 자 문자열 버퍼와 같은)를 사용하는 것은 나쁜 습관입니다. 이것은 단지 예일뿐입니다.