为什么我的程序没有将字符从文件输入到 2D 数组中?
Why isn't my program inputing chars into 2d array from file?
我试图从文件中输入字符到2d数组,但它没有将任何东西放入数组中。当我试着把它打印出来时,我只得到一堆像这样的符号——科技部
下面是一个产生相同错误的示例:测试文件如下:
g g g g g g g g g g
g g g t t t t t t g
g g g t t g t t g g
g t t g g t g g t g
g t t g g t g g t g
g t g t t g t t g g
g t t g g t g g t g
g t t g g t g g t g
g t g t t g t t g g
g g g g g g g g g g
产生相同错误的示例:
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main() {
ifstream inFile;
char myArray[15][15];
inFile.open("C:testCh5p_fa.asc");
int rows = 10;
int columns = 10;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++) {
inFile.get(myArray[i][j]);
}
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++) {
cout << myArray[i][j] << ' ';
}
cout << endl << endl;
}
inFile.close();
cin.get();
}
试试这个:
int main() {
ifstream inFile;
char myArray[15][15];
inFile.open("C:\test\Ch5p_fa.asc", std::fstream::in); // std::fstream::in allows you to read from the file.
int rows = 10;
int columns = 10;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
inFile.get(myArray[i][j]);
inFile.get(); // Skeem unwonted char
}
}
inFile.close();
cin.get();
}
你的栏小了两倍,因为它们没有考虑到白色字符。您可以像下面这样编写第一个循环,例如,使用ising isalpha来检查当前字符是否是字母数字:
char tmp;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns*2; j++) {
tmp = inFile.get();
if (isalpha(tmp))
{
myArray[i][j/2] = tmp;
}
}
}
inFile.get(myArray[i][j])
将读取所有字符,包括空格。使用>>
流操作符代替,这将跳过空格:
if (!inFile)
return 0;
//initialize the array
memset(myArray, 0, 15 * 15);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
if (!(inFile >> myArray[i][j]))
{
//break the loop
i = rows;
break;
}
}
}
相关文章:
- 2D数组来自文本输入,中间有空格
- 如何使用用户输入在C++中正确填充2D数组
- 如何在C++中检查2D数组中负值的输入验证
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 读取字符串文本输入以创建 2D 矢量
- 有没有办法使用输入的维度初始化 2d 数组中的所有项目而不循环C++?
- 基于用户输入的 2D 动态阵列
- 通过功能进行2D矢量输入和显示
- 在 2D 矢量中获取多个输入时出现问题
- 用空格填充 2D 数组(从文件输入)
- 用户输入2D数组(C )
- 2D 数组如何允许输入中的空格
- 如何在不知道尺寸的情况下在 2D 数组中输入
- 输入到2D整数数组C 的好方法
- 如何从文本文件中获取值并输入2D数组?C
- 将值输入2D数组并打印
- C++用户将数据输入 2D 数组的最简单方法是什么?
- 如何在C++中输入2D数组中的字符串
- 输入2d字符数组时出错
- 在 main() C++ 中输入 2D 向量