从C++中的txt文件中读取字符
Read char from txt file in C++
我有一个程序,可以从txt文件中读取行数和列数。此外,程序必须从同一文件中读取2D阵列的内容。
这是txt文件
8 20
*
*
***
***
8和20分别是行数和列数。空格和星号是数组的内容,Array[8][20]
例如,Array[0][1] = '*'
我确实把程序读成了8和20,如下所示:
ifstream myFile;
myFile.open("life.txt");
if(!myFile) {
cout << endl << "Failed to open file";
return 1;
}
myFile >> rows >> cols;
myFile.close();
grid = new char*[rows];
for (int i = 0; i < rows; i++) {
grid[i] = new char[cols];
}
现在,如何将空格和星号分配给数组中的字段?
我做了以下操作,但不起作用
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
while ( myFile >> ch )
{
grid[i][j] = ch;
}
}
}
我希望你明白了。
您可以这样做:
for (int y = 0; y < rows; y++) {
for (int x = 0; x <= cols; x++) {
char ch = myFile.get();
if (myFile.fail()) <handle error>;
if (ch != 'n') grid[y][x] = ch;
}
}
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ifstream myFile("file.txt");
if(!myFile) {
cout << endl << "Failed to open file";
return 1;
}
int rows = 0, cols = 0;
myFile >> rows >> cols;
vector<vector<char> > grid(rows, vector<char>(cols));
for(int i = 0;i < rows;i++)
{
for(int j = 0;j < cols;j++)
{
if(myFile.fail()) {cout << "Improper data in file" << endl;}
myFile >> grid[i][j];
}
}
myFile.close();
//Printing the grid back
std::cout << "This is the grid from file: " << endl;
for(int i = 0;i < rows;i++)
{
cout << "t";
for(int j = 0;j < cols;j++)
{
cout << grid[i][j];
}
cout << endl;
}
}
相关文章:
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 从矢量C++读取字符时出现问题
- 从格式化输入操作中获取读取字符数
- 使用 cin.get 读取字符数组
- 按下回车键时,如何使数组停止读取字符
- C++:读取字符是不正确的
- 如何从输入文件中读取字符并将其存储到向量中?
- 线程函数无法从堆上分配的缓冲区中读取字符
- 使用 cin.get() 读取字符
- C++:使用 fgets() 读取字符输入时出错
- C++ 从文件中读取字符,计算每个字符并进行排序
- C ++ ifstream 无法读取字符串,并且在读取字符时出错
- 逐字读取字符数组,无需字符串函数
- 是否有任何方法可以在用户输入文本时读取字符
- 从字符串中读取字符时出错
- 如何按字符从文件到2D数组读取字符
- 重载>>运算符和读取字符
- 从堆栈中读取字符后,如何修复不正确的文件输出
- 如何从文件中读取“”字符
- 读取字符 * 始终具有相同的地址