首页 > 解决方案 > 如何在C中获取未知长度的字符串?

问题描述

我一直在尝试学习 C,并且想知道:如何在 C 中获得长度未知的字符串?我找到了一些结果,但不知道如何应用它们。

标签: cstring

解决方案


如果您对标准的扩展感到满意,请尝试POSIXgetline()

文档中的示例:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *fp;
    char *line = NULL;
    size_t len = 0;
    ssize_t read;
    fp = fopen("/etc/motd", "r");
    if (fp == NULL)
        exit(1);
    while ((read = getline(&line, &len, fp)) != -1) {
        printf("Retrieved line of length %zu :\n", read);
        printf("%s", line);
    }
    if (ferror(fp)) {
        /* handle error */
    }
    free(line);
    fclose(fp);
    return 0;
}

推荐阅读