Объединяющая строка и int в printf - C - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть следующий код:

#define ERROR_MSG "Error: there was an error "
#define IN_LINE_MSG "in line"
int line = 0;

как я могу объединить эти 3 с помощью printf, чтобы я напечатал следующее:

"Error: there was an error in line 0"

Ответы [ 3 ]

3 голосов
/ 07 апреля 2020

Взгляните на спецификаторы формата для printf

Это должно быть так: printf("%s%s %d", ERROR_MSG, IN_LINE_MSG, line)

Здесь %s обозначает строку и %d обозначает ди git. Затем эти три аргумента после строки передаются на место этих спецификаторов по порядку.

2 голосов
/ 07 апреля 2020
printf(ERROR_MSG IN_LINE_MSG " %d", line);
0 голосов
/ 07 апреля 2020
#include <stdio.h>

#define ERROR_MSG "Error: there was an error "
#define IN_LINE_MSG "in line"
int line = 0;

int main()
{
   printf("%s%s %d", ERROR_MSG, IN_LINE_MSG, line);
}

Выход:

Error: there was an error in line 0

или

#include <stdio.h>

#define ERROR_MSG "Error: there was an error "
#define IN_LINE_MSG "in line"
int line = 0;

int main()
{
   printf(ERROR_MSG IN_LINE_MSG " %d", line);
}

Выход:

Error: there was an error in line 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...