c - 逐行读取文件并存储在C中

标签 c arrays file getline

我在如何在 C 中使用 getline 时遇到问题。我想读取每一行并将其存储到一个数组中。所以我能够读取每一行,打印每一行并打印每行中的字符数。

当我运行我的程序时遇到问题它不会打印出行数和文件,并且不会停止它只是在打印文件的所有行后保持原样。

我也不知道如何将该行存储到数组中。任何帮助/提示将不胜感激!!!

int main(int argc, char *argv[])
{
  int line_count=0;
  int charac_count;
  int count=0;

  char line[81];    
  char *lineptr;
  lineptr=(char*)malloc(sizeof(char)*81);
  int lineptr_size=81;  
  if(!lineptr)
  {
     printf("malloc memory error\n");
     exit(EXIT_FAILURE);
  }     

  if(argc !=3)
  {
    printf("Number of parameters is incorrect.\n");
    exit(EXIT_FAILURE);
  }

  FILE *r; 

  r=fopen(argv[1], "r");
  if(r==NULL)
  {
      printf("File cant be open\n");
      exit(EXIT_FAILURE);
  }


  charac_count=getline(&lineptr, &lineptr_size, r);
  while(charac_counter!=EOF)
  {


        if(charac_count!=-1)
        {
            puts(lineptr);
            printf("%i\n", charac_count);
        }
        line_count++;
        break;


  }


  printf("%i\n", count);
  fclose(r);
  free(lineptr);
  return 0;

}

最佳答案

正如 @BLUEPIXY 提到的,你有一个无限循环。尝试这样的事情:

while((charac_count=getline(&lineptr, &lineptr_size, r))!=EOF)
  {
        if(charac_count!=-1)
        {
            puts(lineptr);
            printf("%i\n", charac_count);
        }
        line_count++;
        break;
  }

关于c - 逐行读取文件并存储在C中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46269888/

相关文章:

c - 如何为大整数实现整数数组加法器?

c - 抓取 "A="和 "&"之间的值,但即使 "&"不存在

javascript - "The element expressions in an array initializer are evaluated each time the array initializer is evaluated"这句话是什么意思?

python - IndexError : too many indices. 1 行 2 列的 Numpy 数组

javascript - 如何在MVC中的Jquery中显示二维数组?

python - 如何使用 Ebpf 阻止文件打开?

c - 关于C中scanf函数的问题

c - 系统调用在 Linux 上的哪个库中?这个库如何链接到包含系统调用的可执行目标文件?

java - 从用户输入多行打印到文件?

提交帖子表单时Android Webview下载文件