C++ 从文件填充二维数组
您好,我有一个从文件填充二维数组的问题 我有一个带字符串的文件数组 每行上的字符串有78个字符 文件有19行。 (最后一行的字符串只有60个字符) 这个文件C++ 从文件填充二维数组,c++,arrays,C++,Arrays,您好,我有一个从文件填充二维数组的问题 我有一个带字符串的文件数组 每行上的字符串有78个字符 文件有19行。 (最后一行的字符串只有60个字符) 这个文件 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFF
00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFXX
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1XX1FFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
我尝试用文件中的变量填充2D数组。
我需要用5行和300列填充数组
但我不知道怎么做
它是关于图像中像素的信息。我想用C++填充C++中的数组。数组必须具有类似x*y的图像。(5*300)
我试了几个小时,但没有成功
我的密码在这里
T **imageHEX; //char
int VYSKA = 5 , SIRKA = 300 , VLINE = 78;
int lines = 0; // precitane riadky
// alokacia miesta pre na obrazok vyska x sirka
imageHEX = new T*[VYSKA];
for (int i = 0; i < VYSKA; i++)
imageHEX[i] = new T[SIRKA];
ifstream file("heximg.txt"); // pass file name as argment
string line;
int pom = 0;
int line_in_file = 0;
int pocetvline = 0;
int doline= 0;
int zaciatok;
// do something
for (int lines = 0; lines < VYSKA; lines++) {
pom++;
if (doline != 0) {
cout << "doline " << doline << endl;
for (int zostatok = doline; zostatok < 78; zostatok++) {
imageHEX[lines][zostatok-doline-1] = line[zostatok % 78];
pocetvline++;
}
zaciatok = 78 - doline-1;
}
else {
zaciatok = 0;
}
for (int lnmax = 0; lnmax < SIRKA; lnmax++)
{
if ((lnmax % 78 == 0)) {
getline(file, line);
line_in_file++;
cout << line_in_file << " " << line << endl;
}
if (lnmax + zaciatok < SIRKA) {
imageHEX[lines][lnmax + zaciatok] = line[lnmax % 78];
} else {
for (int zvysok = 0; zvysok < zaciatok; zvysok++) {
imageHEX[lines+1][zvysok] = line[lnmax % 78];
}
}
pocetvline++;
doline = lnmax % 78;
}
for (int tst = 0; tst < SIRKA; tst++) {
cout << imageHEX[lines][tst];
}
cout <<"druhyriadok " << lines << endl;
cout << "pocet v riadku " << pocetvline << endl;
pocetvline = 0;
// lines++;
}
//}
file.close();
I fill array with variables from file, but wrong, If I read char somwhere from middle string and in array have sourroudings [x][299] automatically read next line and rest in line is in next line (on start in next line) But I have troubble with continue indexing when I read line from next row in file.
T**imageHEX//烧焦
int VYSKA=5,SIRKA=300,VLINE=78;
整数行=0;//里亚德基酒店
//阿罗卡西亚·米斯塔·阿罗卡西亚·阿罗卡西亚·米斯塔
imageHEX=新的T*[VYSKA];
对于(int i=0;i cout只使用一个字符一个字符地读取文件可能更容易,并且忽略换行符,例如
#include <fstream>
#include <cctype>
#include <iostream>
bool isHex(char val) {
return ('0' <= val && val <= '9') || ('A' <= val && val <= 'F');
}
void readFile(std::ifstream& file, char** imageHex, int rows, int columns) {
char currentByte;
for (int row =0; row < rows; row++ ) {
for(int column=0; column < columns; column++ ) {
if (!file.get(currentByte)) {
// end of file, or other error
return;
}
if (isHex(currentByte)) {
imageHex[row][column]=currentByte;
}
else if (!std::isspace(currentByte)) {
std::cout << "Unexpected character '" << currentByte
<< "' at (" << row << ", " <<column << ") " << std::endl;
}
}
}
}
#包括
#包括
#包括
布尔isHex(字符值){
return('0'工作正常,但只有一个错误。在when read file中的每一个结束行上放上imageHex char'='。我将这一行放在else{column--;}的末尾