提问人:Aneesh Bhave 提问时间:4/11/2022 更新时间:4/11/2022 访问量:39
有没有办法将文本文件的内容存储在 c 中的交错字符串数组中?
Is there a way to store the contents of a text file in a jagged string array in c?
问:
让我们从一个example.txt文件开始,其内容是 -
ABCDEF
ABCDE
ABCD
ABCDEFGH
ABC
A
AB
数组应如下所示 -
arr = ["ABCDEF", "ABCDE", "ABCD", "ABCDEFGH", "ABC", "A", "AB"]
我需要一种方法将行存储在类似于 c 中交错字符数组中的example.txt文件中。是否有功能可以解决这个问题,或者我是否需要手动实现它。如果我必须手动实现它,那么在定义阵列时,如何在内存上为阵列分配足够的空间?
答:
0赞
Lundin
4/11/2022
#1
伪代码:
- 打开文件并验证是否成功。
fopen
- 分配指针数组,其中某个合适的值(100 个指针?
char** array = malloc(n * sizeof(*array));
n
- 使用某些变量跟踪指针数组中使用的大小。
size
- 开始循环。
- 将字符串读入 128 或 256 等字符的“足够大”本地缓冲区,使用或类似。始终检查输入函数的结果,看看它是否成功。
fgets
- 如果<则访问并使其指向一个块,则本地缓冲区数据进入该块。
size
n
array[size]
malloc(strlen(the_local_buffer))
strcpy
- 如果那么 realloc .
size == n
array
size++
和循环。
评论
fgets
malloc
realloc
gets