C语言 -- fgets函数读取中文字符问题

C语言 -- 在使用fgets函数的时候如果读取了中文字会继续读取下一行的资料

在写程序的时候发面,如果在txt档案里存在中文字符的话fegts函数会自己读取了下一行的字
这是代码部分

   FILE *fp;
    int i = -1;
    char chessBoard[24][50];
    char temp[50];
    char pao[5] = "炮.";

    fp = fopen("ChessBoard\\basic1.txt", "r");

    while (i < 24)
    {
        i++;
        fgets(chessBoard[i], 52, fp);
    }

img


这是txt档案里面的内容

img


这是有中文字符的读取结果,第12行那里他自己读取了一遍下一行的文字

img


这是换成英文字符的读取结果,完全没有任何问题

这不是读取了下一行,这是汉字所在行没有终止符'\0',而二维数组本质是一维的,所以输出汉字所在行时把下一行也输出了。
应该是因为每行的宽度不够,把chessboard[24][50]改成chessboard[24][54]应该就可以了。