gpt4 book ai didi

c - 如何使用文件中的数据填充已分配的二维数组?

转载 作者:行者123 更新时间:2023-11-30 17:05:08 25 4
gpt4 key购买 nike

我有以下 C 代码段:

#define LINES 40
int i,j,k = 0;

char **c;
char tmp;

// allocate key array memory
if( (c = malloc(LINES*sizeof(char*))) == NULL)
printf("Error allocating memory\n");

for(i=0;i<LINES;i++){
c[i] = malloc(10*sizeof(char));
}

我还有一个包含如下数据的文件:

AsfAGHM5om
~sHd0jDv6X
uI^EYm8s=|
....

如何使用该文件中的数据填充上面分配的数组(例如使用 fgetsfgetc)?

最佳答案

如果您的字符串长度恒定,就像您的示例一样,那么您可以使用 BUFSIZ 定义一个宏作为单词的最大长度。 注意:不要忘记计算 '\0' 每个字符串末尾的字符。在这种情况下,解决方案将如下所示:

// create an array of strings
char ** array = (char **)calloc(LINES, sizeof(char *));

for (size_t i = 0; i < LINES; i++) {
// allocate space for each string
array[i] = (char *)calloc(1, BUFSIZ);
// get the input
fgets(array[i], BUFSIZ, stdin);
// remove the '\n' character
// from the end of the string
array[i][strlen(array[i]) - 1] = '\0';
}

关于c - 如何使用文件中的数据填充已分配的二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com