从控制台读取字符串并存储在数组

时间:2017-09-11 12:50:13

标签: c multidimensional-array

输入将通过控制台读取。示例:code.exe< sample.txt的

sample.txt看起来像这样:

1 + 2
3 + 4
6 + 9

我正在尝试创建一个通过控制台读取输入的程序,然后将数据存储到数组中。这是我创建的代码,我无法弄清楚为什么会出错。

int main(void) {
    int c;
    int i = 0;
    int j = 0;
    int line[1000][1000];

    while((c = getchar()) != EOF) {
        line[i][j] = c;
        j++;
        if(c == '\n') {
            line[i][j] = 0;
            i++;
            j = 0;
        }
    }

此代码尝试执行以下操作:

line [0] [0]< - {1,+,2}

行[1] [0]< - {3,+,4}

line [2] [0]< - {6,+,9}

非常感谢你! :)

编辑:我得到的错误基本上是,“code.exe已经停止工作”对不起,这不是很有用的信息:/

1 个答案:

答案 0 :(得分:0)

OP在这里。

我运行了代码。显然我的错误是制作一个大小为[1000] [1000]的数组。我意识到这大约是1,000,000 * 4字节~4 MB的连续内存。当数组的大小较小时,代码可以工作。

现在我的代码。

int main(void) {
    int c;
    int i = 0;
    int j = 0;
    int line[100][100];

    while((c = getchar()) != EOF) {
        line[i][j] = c;
        j++;
        if(c == '\n') {
            line[i][j] = 0;
            i++;
            j = 0;
        }
    }
}