相关疑难解决方法(0)

从文件中读取并存储在数组中

我编写了以下程序,从文件中逐行读取并将其存储在单词数组中.输出应该是数组中的两个随机字.但令人惊讶的是,单词数组只包含重复读取的最后一个单词.对出了什么问题的任何帮助?

int main(){
 int i = 0;
 char line_buffer[BUFSIZ];
 char* words[20];
 FILE *fp = fopen("input.txt", "r");
  while (fgets(line_buffer, sizeof(line_buffer), fp)) {
  //printf("%s", line_buffer); 
  words[i] = line_buffer;
  i = i + 1;
 } 
 printf("%d", i);
 int j = rand()%8;
    int k = (j+1)%8;
 printf("%s %s", words[j], words[k]); 
 fclose(fp);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

input.txt中

nematode knowledge
empty bottle
nevertheless
claustrophobia
metamorphosis
acknowledgement
impossibility
never gave up
Run Code Online (Sandbox Code Playgroud)

c random

6
推荐指数
1
解决办法
4万
查看次数

无法理解C中两行的含义

程序逐行将文本文件读入字符串数组.我无法理解代码中两行的含义:

char **words = (char **)malloc(sizeof(char*)*lines_allocated);

...

words = (char **)realloc(words,sizeof(char*)*new_size);
...
Run Code Online (Sandbox Code Playgroud)

你能帮我理解一下吗?

c

0
推荐指数
1
解决办法
179
查看次数

标签 统计

c ×2

random ×1