Исправить код (Парсер строки) C++ Linux

325
30 октября 2017, 23:25
#include <iostream>
int main(int arc, const char *argv[])
{
    while (true)
    {
        char buf[1024];
        char command[100];
        char path[100];
        std::cout << "Enter command and path: ";
        std::cin.getline(buf, 100);
        int i, j;
        for (i = 0; (buf[i] != ' ') && (buf[i] != '\n'); command[i] = buf[i], i++);
        if ((buf[i] == ' ') && (buf[i + 1] != '\n'))
        {
            i += 1;
            for (j = 0; (buf[i] != ' ') && (buf[i] != '\n'); path[j] = buf[i], j++, i++);
        }
        std::cout << "command = " << command << " path = " << path << std::endl;
    }

    return 0;
}

исправить код ... тут не корректно работает Мне нужно чтобы я каждый раз печатал команду и путь и программа разделил команду от пути в разные массивы Но здесь если команда короче предыдущей команды то он не презеписывыается в массиве ...

Answer 1

После строки

for (i = 0; (buf[i] != ' ') && (buf[i] != '\n'); command[i] = buf[i], i++);

Добавьте строчку

command[i] = '\0';
READ ALSO
Какой алгоритм использовать для задачи?

Какой алгоритм использовать для задачи?

Я прошу только алгоритм, которым пользоваться

377
Валидация PHP AJAX.

Валидация PHP AJAX.

Всем добраУ меня такой вопрос

385
&ldquo;Плохое&rdquo; поведение яндекс карт

“Плохое” поведение яндекс карт

Когда контейнеру, содержащему яндекс-карты выставляю dislay: none карты при открытии кнопкой с помощью функцииslideToggle() остаются маленькими

307