在C语言中将文件加载到2D字符数组中

在C语言中将文件加载到2D字符数组中,c,C,我有一个25行的文本文件,每行有34个字符 在C语言中,如何加载这些字符并将其存储到2D数组中 如果文件的前三行是这样的: bamaaaaaaaacxxxxxxxxxxbaaaaaaaamac jzjzzzzzzzzdaaaaaaaaaaezzzzzzzzjzj jzjzbaaczgzzzzzzzzzzzzzzgzbaaczjzj ...and so on 我要求存储数组时,将其定义为: char* data[] = { "baaaaaaaaaaaaaacxxbaaa

我有一个25行的文本文件,每行有34个字符

在C语言中,如何加载这些字符并将其存储到2D数组中

如果文件的前三行是这样的:

bamaaaaaaaacxxxxxxxxxxbaaaaaaaamac
jzjzzzzzzzzdaaaaaaaaaaezzzzzzzzjzj
jzjzbaaczgzzzzzzzzzzzzzzgzbaaczjzj

...and so on
我要求存储数组时,将其定义为:

char* data[] = {
            "baaaaaaaaaaaaaacxxbaaaaaaaaaaaaaac",
            "jzzzzzzzzzzzzzzjxxjzzzzzzzzzzzzzzj",
            "jzbaaaaaaaaaaaaexxdaaaaaaaaaaaaczj",
...and so on
char data[25][35] //There is an extra 1 character per line to hold the null terminator character
希望这有点道理!
数据
的类型必须是
char data[][]
,因为它在我的项目的其余部分中以该格式使用,并且不能更改

我已经完成了文件IO的基本开始

FILE  *infp;

printf("Opening file\n");

if((infp = fopen("file.txt", "r"))== NULL) {
    printf("\nERROR : Unable to open input file\n");
    SetExitWithCode( 999 );
    }else{
            //code here
            }

有人能帮忙吗?

那么,您希望您的阵列如下所示:

char* data[] = {
            "baaaaaaaaaaaaaacxxbaaaaaaaaaaaaaac",
            "jzzzzzzzzzzzzzzjxxjzzzzzzzzzzzzzzj",
            "jzbaaaaaaaaaaaaexxdaaaaaaaaaaaaczj",
...and so on
char data[25][35] //There is an extra 1 character per line to hold the null terminator character
然后将整个文件读入该数组

fread(data, 1, sizeof(data), infp);
最后,用终止符替换每行中的新行字符

for (int i = 0; i < 25; ++i) {
    data[i][34] = 0;
}
for(int i=0;i<25;++i){
资料[i][34]=0;
}

这是解决问题的最简单方法,但也是一种不好的方法。它不能验证数据是否正确,所有的东西都是硬编码的。< /P>你的代码不是C++(除了你打开文件的方式,其他的东西都是编译错误),你应该在C上得到一本体面的书,然后再读前几章,然后再尝试编写任何更具说服力的代码。对不起,我应该提到我有一些#定义这些尺寸的值!非常感谢!