c - 读取文本文件并将每一行存储到 char*[] 中的程序

标签 c

我是 C 编程新手。我正在编写一个程序,该程序读取文本文件并将每一行存储到 char*[] 数据结构中。我知道如何处理字符,但我不知道如何存储每一行​​?它需要一个二维数组吗?这就是我的代码,但出现段错误。我只是想打印出 I 和 j 来检查它是否有效。 谢谢

#include <stdio.h>
#define NUMBER_LINES 400


int main()
{


    char lines[NUMBER_LINES][255];
    FILE *fp = fopen("input.txt", "r");

    if (fp == 0)
    {
       return 1;
    }
     char c;
     int i ;
     while (fscanf (fp, "%c", &c) == 1)
   {

       i = 0;
       int j;


         for (j=0; !(c=='\n'); j++){
            lines[i][j] = c;
         }
       if (c == '\n'){
        printf("%s%s\n", lines[i][j]);
         i++;
       }
       }

     return 0;
}

最佳答案

您可以使用矩阵:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NUMBER_LINES 100

int main(void)
{
    int i = 0;
    char lines[NUMBER_LINES][255];
    FILE *fp = fopen("file.txt", "r");

    if (fp == 0)
    {
        fprintf(stderr, "failed to open input.txt\n");
        exit(1);
    }
    while (i < NUMBER_LINES && fgets(lines[i], sizeof(lines[0]), fp))
    {
        lines[i][strlen(lines[i])-1] = '\0';
        printf("\n%s", lines[i]);
        i = i + 1;
    }
    fclose(fp);
    return 0;
}

关于c - 读取文本文件并将每一行存储到 char*[] 中的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354863/

相关文章:

c - 仅使用头文件进行编程?

c - 在不使用数组的情况下交换给定数字的备用数字

C 函数参数 : struct, 或 const struct*

python - 如何只读取前两个数字? python +串口

c - 骑士每次在不同位置的棋盘上移动 c

c - 从链表出队时如何释放内存?

c - 为什么 syslog.h 会跳过我的 C 程序中的日志消息?

c - STM32F1 USART DMA TX 未完成第二次传输

c++ - C++ 和/或 C 中的 size_t 与 int

c - 从 makefile 设置标志的问题