C语言读取文件如何返回一个数组?

2025-02-18 19:52:31104 次浏览

最佳答案

c语言没有直接读取返回数组的函数。

看你问题里文件内容格式是:一行一个字符串回车换行。

那么,用fgets一次读一行,你写循环调用这个fgets函数把读取的值放在数组里。

至于你说的数组长度宽度不定,在c里需用malloc动态申请内存。

方法1:用fseek和ftell获取整个文件字节数,然后用malloc申请一个整个文件大小的内存地址(二维数组在内存中就是一维)。然后在循环中每次读取一行到这个地址并计算一行长度,利用指针移得到每行首地址,最后所有行指针组成二维数组(行数也是动态申请)

方法2:你定义一个比较大的字符数组,作为零时存储变量,每次循环中读取一行到这个数组,再用strlen计算字符串长度,再用malloc按照这个长度申请一组地址(一行),并利用strcpy转移内容,最后组成二维数组。

方法3:直接用malloc申请很大的二维数组,循环读取获取内容后,strlen获取每行实际内容的长度。最后用realloc根据实际宽度和行数修改数组大小。

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。