im new to C++ и работающий над моим первым проектом, который включает в себя чтение .txt-файла формы ниже. У меня есть проблема с вложением значений пикселей в 2D динамическую таблицу, которую я могу проанализировать позже. Мне нужно прочитать значение первого пикселя и поместить его в первый элемент таблицы, а второй - во второй элемент таблицы и т. Д. ... пока у меня не будут все пиксели в таблице высотой 150 и шириной 250 (обратите внимание, что это всего лишь пример, размеры могут меняться в зависимости от файла .txt).Чтение из .txt-файла и ввод значений в многомерный вектор
250 // width pixels
150 // height en pixels
2 // number of colours
205 // colour 0
35 // colour 1
0 // value of pixel 0, background colour (white)
0 // value of pixel 1, background colour (white)
…
205 // one pixel of colour 0 (red)
…
35 // one pixel of colour 1 (blue)
…
0 // value of last pixel, background colour
Пока мой код выглядит следующим образом (который компилирует):
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main() {
ifstream f_in;
f_in.open("Pixmap.txt");
int largeur;
int hauteur;
int nbre;
if (f_in.is_open())
{
f_in >> largeur;
f_in >> hauteur;
f_in >> nbre;
}
else cerr << "Unable to open file";
f_in.close();
return 0;
}
Любая помощь будет оценена ... спасибо
Я не совсем понимаю, формат ввода. Вы получаете ширину и высоту, а затем X число цветов, за которыми следуют значения цвета X? Что означают значения цвета? Как 205 цвет красный? Кажется, вы не используете RGB? В любом случае, вы можете либо считывать каждый бит данных в вектор/список, либо реструктурировать его/повторно использовать, либо вы можете создать свой многомерный вектор за 1 проход. – Mohammad
Значения в файле txt представляют собой изображение графика. Таким образом, красные пиксели представлены числом 205, синими пикселями на 35 и белыми пикселями на 0. Изображение может содержать любое количество цветов, поэтому эти первые несколько строк предоставляют информацию о количестве цветов и их репрезентативных значениях. Моя проблема заключается в том, чтобы читать эти значения и помещать их в многомерный вектор, борясь, поскольку это только моя пятая неделя C++ .. спасибо :) –