在C语言中,通过读取文件并显示该文件而获得的字符串数组可以通过以下步骤实现:
fopen()
,打开要读取的文件。可以指定文件的路径和打开模式(例如只读模式)。fgets()
或fread()
,逐行或一次性读取文件的内容。可以指定读取的缓冲区大小和读取的最大字符数。malloc()
)来动态分配存储空间。fclose()
,关闭已打开的文件,释放资源。以下是一个示例代码,演示了如何通过读取文件并显示该文件而获得的字符串数组:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINE_LENGTH 100
int main() {
FILE *file;
char line[MAX_LINE_LENGTH];
char **stringArray;
int lineCount = 0;
// 打开文件
file = fopen("filename.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 统计文件行数
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
lineCount++;
}
// 动态分配存储空间
stringArray = (char **)malloc(lineCount * sizeof(char *));
if (stringArray == NULL) {
printf("内存分配失败\n");
return 1;
}
// 重新定位文件指针到文件开头
fseek(file, 0, SEEK_SET);
// 读取文件内容并存储到字符串数组中
for (int i = 0; i < lineCount; i++) {
fgets(line, MAX_LINE_LENGTH, file);
stringArray[i] = (char *)malloc((strlen(line) + 1) * sizeof(char));
strcpy(stringArray[i], line);
}
// 关闭文件
fclose(file);
// 打印字符串数组内容
for (int i = 0; i < lineCount; i++) {
printf("%s", stringArray[i]);
}
// 释放动态分配的内存
for (int i = 0; i < lineCount; i++) {
free(stringArray[i]);
}
free(stringArray);
return 0;
}
这段代码假设要读取的文件名为filename.txt
,文件中的每一行内容都不超过MAX_LINE_LENGTH
个字符。代码首先打开文件,然后统计文件的行数,接着动态分配存储空间,读取文件内容并存储到字符串数组中,最后关闭文件并释放动态分配的内存。最后,通过循环打印字符串数组中的内容。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云