从文本文件中获取行字符串并将其存储在数组/指针中,可以通过以下步骤实现:
以下是一个示例代码,用于从文本文件中获取行字符串并将其存储在动态分配的指针数组中:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *file;
char **lines; // 存储行字符串的指针数组
char line[MAX_LINE_LENGTH];
int numLines = 0;
// 打开文本文件
file = fopen("filename.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 统计文件中行数
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
numLines++;
}
// 动态分配存储行字符串的指针数组
lines = (char **)malloc(numLines * sizeof(char *));
if (lines == NULL) {
printf("内存分配失败\n");
return 1;
}
// 重新定位文件指针到文件开头
fseek(file, 0, SEEK_SET);
// 逐行读取文件内容并存储到指针数组中
int i = 0;
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
lines[i] = (char *)malloc((strlen(line) + 1) * sizeof(char));
strcpy(lines[i], line);
i++;
}
// 输出存储的行字符串
for (int j = 0; j < numLines; j++) {
printf("%s", lines[j]);
}
// 释放内存
for (int j = 0; j < numLines; j++) {
free(lines[j]);
}
free(lines);
// 关闭文件
fclose(file);
return 0;
}
这段代码会打开名为"filename.txt"的文本文件,逐行读取文件内容,并将每行字符串存储在动态分配的指针数组中。最后,输出存储的行字符串,并释放动态分配的内存空间。请注意,这只是一个示例,实际应用中可能需要根据具体需求进行修改和优化。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云