Суд C++ преобразовывает значения в шестнадцатеричную систему?

Решение с использованием оператора по модулю и одного цикла. Нет риска IndexOutOfBounds.

for (int i = 0; i < list.length; i++) {
    if (i % 6 > 2) {
        System.out.println(list[i]);
    }
}

Вы можете переключить условие на i % 6 < 3, если вместо этого хотите получить первые 3 из каждых 6 элементов в массиве.

РЕДАКТИРОВАТЬ: следующее берет ваш ввод и помещает его в List<String[]>, где каждый элемент содержит 3 строки.

import java.nio.file.*;
import java.util.stream.Stream;
import java.util.*;
import java.nio.charset.Charset;

public class Partition2 {
    public static void main(String[] args) {
        String[] input = ...

        try (Stream<String> stream = Arrays.stream(input)) {
            // https://stackoverflow.com/a/34759493/3717691
            String[] array = stream.map(line -> line.trim()).filter(line -> !line.isEmpty()).toArray(String[]::new);

            List<String[]> results = new ArrayList<String[]>();
            String[] tmp = new String[3];
            for (int i = 0; i < array.length; i++) {
                tmp[i % 3] = array[i];
                if (i % 3 == 2) {
                    results.add(tmp);
                    tmp = new String[3];
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
135
задан Cœur 1 February 2019 в 07:17
поделиться

4 ответа

Использование:

#include <iostream>

...

std::cout << std::hex << a;

существуют много других опций управлять точным форматированием вывода номер , такой как начальные нули и верхний / нижний регистр.

188
ответ дан 23 November 2019 в 23:44
поделиться

Управлять потоком для печати в шестнадцатеричном использовании hex манипулятор:

cout << hex << a;

По умолчанию шестнадцатеричные символы производятся в нижнем регистре. Для изменения это на верхний регистр использует uppercase манипулятор:

cout << hex << uppercase << a;

Для позже возврата вывода к нижнему регистру используйте nouppercase манипулятор:

cout << nouppercase << b;
39
ответ дан 23 November 2019 в 23:44
поделиться

Я понимаю, что это не то, что попросила OP, но я все еще думаю, что стоит, чтобы указать, как сделать это с printf. Я почти всегда предпочитаю использовать его по станд.:: суд (даже без предыдущего фона C).

printf("%.2X", a);

'2' определяет точность, 'X', или 'x' определяет случай.

10
ответ дан 23 November 2019 в 23:44
поделиться

std::hex определяется в <ios>, который включен <iostream>. Но использовать вещи как std::setprecision/std::setw/std::setfill / и т.д. необходимо включать <iomanip>.

42
ответ дан 23 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: