从文件填充 2D 数组
Fill 2D array from file
您好,我在从文件填充 2D 数组时遇到问题。
我在文件数组中有带有字符串的数组每行的字符串有 78 个字符和文件有 19 行。(最后一行的字符串只有 60 个字符(
此文件
00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFXX
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1XX1FFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
我尝试用文件中的变量填充 2D 数组。我需要 5 行和 300 列的填充数组
但我不知道怎么做。
这是关于图像中像素的信息。 我想用信息填充数组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.
你有什么想法吗?谢谢
或者你有如何从文件中读取字符串,比如一个没有行的大字符串?
使用 istream::get
逐个字符读取文件并忽略换行符可能更容易,例如
#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;
}
}
}
}
相关文章:
- 2D数组来自文本输入,中间有空格
- 如何使用用户输入在C++中正确填充2D数组
- 如何在C++中检查2D数组中负值的输入验证
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在C++函数中声明静态 2D 数组?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 获取 2D 数组 c++ 中的所有数字对
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 如何在构造函数中使用初始值设定项设置具有相同值的 2d 数组?
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 如何打印 2D 字符数组C++
- 如何将数组 2d 作为参数从函数传递并返回数组 2d 此函数
- 数组 2D 多个值
- 创建数组数组 (2D),而无需在 Java 中初始化内部数组
- 如何在C++中将文本文件传输到数组2D
- 从同一类的另一个方法调用数组2D-C++
- 获取地址在数组2d中的位置