Как объединить несколько массивов в строку - PullRequest
0 голосов
/ 06 мая 2020

У меня есть несколько разных частей данных, которые я пытаюсь объединить в один массив, как будто я пишу в него строку и пытаюсь найти способ сделать это. Моя текущая попытка показана ниже, но, конечно, не работает. Я надеялся, что кто-то сможет указать мне правильное направление

newline = "%s %s\t%d\t%d %d %d  \t%.2f\n",
arr_student[printing].fname, arr_student[printing].sname, arr_student[printing].UP_no, arr_student[printing].marks_1,
arr_student[printing].marks_2, arr_student[printing].marks_3, arr_student[printing].average_mark;

1 Ответ

4 голосов
/ 06 мая 2020

Если вы пытаетесь создать строку с этой информацией, вы должны использовать функцию sprintf, которая сгенерирует строку в соответствии с вашей строкой формата и параметрами формата:

Edit : Как указано @PeteKirkham, вместо этого вам следует использовать функцию snprintf, которая позволяет вам указать максимальное количество байтов (или символов) для записи в строку вывода

char newline[100]; // or however many characters you want to allocate for
snprintf(newline, 100, "%s %s\t%d\t%d %d %d  \t%.2f\n",
arr_student[printing].fname, arr_student[printing].sname, arr_student[printing].UP_no, arr_student[printing].marks_1,
arr_student[printing].marks_2, arr_student[printing].marks_3, arr_student[printing].average_mark); // again, replace 100 with however many characters you are expecting to write
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...