Я хотел бы знать, как можно избежать "% * s" в вызове sprintf.
Например, у меня есть следующий фрагмент кода:
sprintf(log_buffer,"1234 567 89");
strcpy(format,"%*s");
sprintf(format1, " %%%ds %%%ds ",5,5);
printf("\n Format is : %s ",format);
printf("\n Format1 is : %s ",format1);
strcat(format,format1);
printf("\n new format is : %s ",format);
sscanf(log_buffer,format,name,name1);
printf(" Name is 1: %s \n",name);
printf(" Name is 2: %s ",name1);
Это отлично работает.
Это дает мне:
Format is : %*s
Format1 is : %5s %5s
new format is : %*s %5s %5s
Name is 1: 567
Name is 2: 89
Могу ли я не использовать strcpy и игнорировать% * s внутри самого sprintf? Я пытался избежать его внутри sprintf, но я думаю, что это неправильно, поскольку я получаю ошибку сегментации.
sprintf(format1, " \%*s %%%ds %%%ds ",5,5);