C++ Присвоить значения из массива множеству переменных по порядку
У меня 150 переменных, в которые необходимо присвоить по порядку значения из массива.
В голову лезет только это:
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
int array[3] = {1, 2, 3};
for (int i = 0; i < 3; i++) {
a = array[i];
b = array[i];
c = array[i];
}
std::cout << a << " " << b << " " << c;
return 0;
}
Но результат очевиден: "3 3 3"
А хотелось бы видеть это: "1 2 3"
Как можно решить данную проблему? Подойдёт любой грамотный способ
Ответы (2 шт):
Автор решения: Eugene X
→ Ссылка
Вариант конечно извращённый но рабочий.
#include <stdio.h>
#include <string.h>
struct ABC {
int a;
int b;
int c;
};
int main()
{
struct ABC set;
int array[3] = {1, 2, 3};
memcpy(&set, &array[0], sizeof(set));
printf("%d %d %d\n", set.a, set.b, set.c); // out: 1 2 3
return 0;
}
Автор решения: HolyBlackCat
→ Ссылка
Что-то я сомневаюсь, что вам на самом деле нужно столько переменных, но просили - получите:
#include <array>
#include <iostream>
#include <utility>
int main()
{
int arr[3] = {1, 2, 3};
auto &[a, b, c] = arr;
std::cout << a << b << c << '\n';
return 0;
}
Хотя, технически это не переменные...