Как я могу удалить значения из оператора вывода при условии? - c ++ - PullRequest
0 голосов
/ 06 мая 2020

Я немного не понимаю, как go обойти это. У меня есть несколько переменных массива с некоторой информацией, и я хочу распечатать их после некоторых вычислений. Если значение равно 0, то вместо этого я хочу напечатать "". Однако есть 3 массива, которые необходимо проверить, как мне изменить оператор вывода, чтобы он обслуживал все 3 проверки и напечатал пустую строку вместо значения?

for(int start = 1; start < 13; start++)
    {

        if(check[start] == 1)
        {

            cout << checkMonth(start) << ": " << setprecision(1) << fixed << averagespeed[start] << "(" << setprecision(1) << fixed << sdSpeed[start] << ")," << setprecision(1) << fixed << averagetemp[start] << "(" << setprecision(1) << fixed << sdTemp[start] << ")," << setprecision(1) << fixed << Solar[start] << '\n';

        }
        /*if(sumTemp[start] == 0 || sumTemp[start] == 0 || sumSpeed[start] == 0){



        }*/
    }

Пример вывода выглядит следующим образом:

January,5.5(1.2),25.5(12.2),196.4

Например, если сумма скорости равна 0, это означает, что все значения скорости равны 0 или нулю. Поэтому он должен измениться на это:

January,,25.5(12.2),196.4

1 Ответ

1 голос
/ 06 мая 2020

Одну строку до std::cout не нужно делать одним оператором. Например:

std::cout << "First";
std::cout << ", second"
std::cout << ", third\n"

Выводит следующую строку: First, second, third

Теперь мы можем использовать if для условной печати средней части строки:

std::cout << a;
if (b != 0) {
    std::cout << ", " << b;
}
std::cout << ", " << c << '\n';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...