c++ - 为什么我的程序不从文件中将字符输入二维数组?

标签 c++ arrays file

我正在尝试从文件中将字符输入到二维数组中,但它没有将任何内容放入数组中。当我尝试打印出来时,我只得到一堆看起来像这样的符号 - ╠

这是一个产生相同错误的例子:

测试文件如下所示:

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:\test\Ch5p_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();

}

如果您需要空格,只需将列扩大一倍即可。

关于c++ - 为什么我的程序不从文件中将字符输入二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297019/

相关文章:

c++ - 使用派生类分配基类指针的内存

c++ - 如何检查是否正在隐式生成移动构造函数?

c++ - PortAudio 示例代码问题

ios - JSON 到自定义对象数组 (Swift)

javascript - 如何将其设置为 "save as HTML"而不是 "download as HTML"?

C 使用预定义消息将标准输出重定向到文件

c++ - 确定小数点右边的非零位数

c 字符串和文件操作

C++ 将字符串放入数组

java - 检测文件在 Java 中重新打开