C 从文本文件读取和存储非确定矩阵

C 从文本文件读取和存储非确定矩阵,c,C,它不能完全正确打印。像sho打印出来的,但“ul”不是。d不在新行中。(linux终端) 打印方式=您可能需要更改此部分: Hello, I am trying to get a matrix from a text file(character matrix specifically and wants to store in dynamic ar ray(I know it is not dynamic in my example but for know i just try to do

它不能完全正确打印。像sho打印出来的,但“ul”不是。d不在新行中。(linux终端)


打印方式=

您可能需要更改此部分:

Hello, I am trying to get a matrix from a text file(character matrix specifically and wants to store in dynamic ar
ray(I know it is not dynamic in 
my example but for know i just try to do in determined matrix) . But my code doesn't work as it should.


这意味着,如果字符是新行,则移动到下一行,否则将其保存在数组中。

您可能需要更改此部分:

Hello, I am trying to get a matrix from a text file(character matrix specifically and wants to store in dynamic ar
ray(I know it is not dynamic in 
my example but for know i just try to do in determined matrix) . But my code doesn't work as it should.


这意味着,如果字符是新行,则移动到下一行,否则将其保存在数组中。

只有遇到新行时,才会在数组中存储某些内容

我会将循环重写为

if(c=='\n'){
  i++;
  j = 0;
} else {
  array[i][j] = c;
  j++;
}

fgetc在feof()和ferror()上返回EOF,这样,如果硬盘出现问题,就不会有无限循环。

只有在遇到换行符时,才会在数组中存储某些内容

我会将循环重写为

if(c=='\n'){
  i++;
  j = 0;
} else {
  array[i][j] = c;
  j++;
}

fgetc在feof()和ferror()上返回EOF因此,如果硬盘出现问题,你就不会有无限循环。

如果字符不是
\n
,你似乎不会在数组中设置任何内容。如果字符不是
\n
,你似乎不会在数组中设置任何内容。啊,我的错误是的,我很快就解决了,但问题是即使这样,在大多数情况下,它也不起作用打印一些单词(特别是结尾字母)我有一个这样的文本文件“您好,我正试图从文本文件(特别是字符矩阵)中获取一个矩阵,并希望存储在dynamic ar ray中(我知道在我的示例中它不是动态的,但我知道我只是尝试在确定的矩阵中执行)。但我的代码没有按它应该的方式工作。”它打印出来下一个打印出来的字母是“d”,而不是“ul”"。同样的句子。你能把文本文件示例添加到你的问题中吗?我在第一篇文章中添加了我的文本文件以及它是如何打印的。你正在创建一个10x10数组,也许你需要把它变大?我创建了一个150x150的数组,就是这个图像示例。仍然打印出相同的内容啊,我的错误是的,我很快就解决了,但问题是,即使这样对大多数人都有效部分它不打印一些单词(特别是结尾字母)我有一个这样的文本文件“您好,我正试图从文本文件(特别是字符矩阵)中获取一个矩阵,并希望存储在dynamic ar ray中(我知道在我的示例中它不是动态的,但我知道我只是尝试在确定的矩阵中执行)。但是我的代码没有按它应该的方式工作。”它打印出“sho”,下一个打印出的字母是“d”,它不打印出“ul”。同样的句子。你能把文本文件示例添加到你的问题中吗。我在第一篇文章中添加了我的文本文件以及它的打印方式。你正在创建一个10x10数组,也许你需要把它变大?我创建了一个150x150的,就是图像示例。仍然打印相同的
while ((c = fgetc(fp)) != EOF)
{
    if(c!='\n'){
     array[i][j]=c;
     j++;
    }
    else
    {
      i++;
      j = 0;
    }
}