我是 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/