0

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

在 C 中如何加载这些字符并将它们存储到二维数组中?

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

bamaaaaaaaacxxxxxxxxxxbaaaaaaaamac
jzjzzzzzzzzdaaaaaaaaaaezzzzzzzzjzj
jzjzbaaczgzzzzzzzzzzzzzzgzbaaczjzj

...and so on

我要求存储数组,就好像它是这样定义的:

char* data[] = {
            "baaaaaaaaaaaaaacxxbaaaaaaaaaaaaaac",
            "jzzzzzzzzzzzzzzjxxjzzzzzzzzzzzzzzj",
            "jzbaaaaaaaaaaaaexxdaaaaaaaaaaaaczj",
...and so on

希望这有点道理!重要的datachar 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
            }

任何人都可以帮忙吗?

4

1 回答 1

2

所以,你希望你的数组看起来像这样:

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;
}

这是解决问题的最简单方法,但也是一种不好的方法。它不验证数据的格式是否正确,并且所有内容都是硬编码的。

于 2012-04-29T20:06:10.350 回答