我试图寻找一种解决方案,但找不到。是否可以返回字符串?我想将字符串从下面的函数传递回main。我想传递listofdeatils字符串。

这是我的代码:

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

void readFile();

int main()
{
    readFile();
    getchar();
    printf("%s \n", listofdetails[1]);
    getchar();

    return 0;
}

void readFile()
{
    int i;
    FILE *fp;
    fp = fopen("specification.txt", "r");

    char ** listofdetails;
    listofdetails = malloc(sizeof(char*)*6);

    for(i=0;i<6;i++)
    {
        listofdetails[i] = malloc(sizeof(char)*40);
        fgets(listofdetails[i], 40, fp);
        printf("%s \n", listofdetails[i]);
        free(listofdetails[i]);
    }

    free(listofdetails);
    fclose(fp);
}

最佳答案

尝试这个:

void readFile(char listofdetails[6][40]);

int main()
{
    char listofdetails[6][40];
    readFile(listofdetails);
    printf("%s \n", listofdetails[1]);
    return 0;
}

void readFile(char listofdetails[6][40])
{
    int i;
    FILE *fp;
    fp = fopen("specification.txt", "r");

    for(i=0;i<6;i++)
    {
        fgets(listofdetails[i], 40, fp);
        printf("%s \n", listofdetails[i]);
    }

    fclose(fp);
}

07-24 18:14