У меня есть программа, которая читает txt-файл. Затем я использую strtok для токенизации строк, используя «;» как разделитель. Проблема в том, что я должен горизонтально форматировать те жетоны, похожие на sql-запрос. Единственное, что я получаю, это сделать маркеры напечатаны вертикально. Я так растерялся.манипуляция с маркером strtok
Это мой код. #define _CRT_SECURE_NO_DEPRECATE #include #include
int i, j;
FILE *fdin;
char *p;
char s_line[120];
char *token;
const char s[2] = ";";
int main()
{
if ((fdin = fopen("raw14.txt", "r")) == NULL)
return 1;
while (fgets(s_line, sizeof(s_line), fdin))
{
/*get first token */
token = strtok(s_line, s);
p = &s_line[strlen(s_line) - 1];
if (*p < ' ')
*p = '\0';
/*Loop for Serarating*/
while (token){
printf("Description")
printf(" %s\n", token);
token = strtok(NULL, s);
}
}
printf("\n\n");
return 0;
}
Результат должен выглядеть следующим образом:
ITEM ID ОПИСАНИЕ КОЛ-ВО QTY OUT БАЛАНС
240201 AEROSIL | 253.50 231.00 | 22.50
240202 АЛКОГОЛЬ | 663,00 412,78 | 250,22
TXT часть такова:
240201; Аэросил; 253,5; 231 240202; СПИРТ; 663; 412,78
Пожалуйста, обратите внимание, что я понятия не имею, как создать дополнительный столбец баланса и также поставили трубопроводы только с strtok. Я получаю, что я также должен использовать выравнивание по левому краю и форматировать printf, чтобы получить результат.
Спасибо, похоже, это была моя незначительная проблема. Я редактировал вопрос. –
@PetrosKoklas: Так что, пожалуйста, какая у вас проблема * major *? – alk