gpt4 book ai didi

c - 函数调用main

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:10 25 4
gpt4 key购买 nike

目标是显示“file.txt”中“} {”之间的单词。当我在 main() 中编写它时它会运行,但是当我创建一个新函数并在 main 中调用该函数时,它会运行代码,但只是不显示任何后记。

void listagem() {

FILE *fp;
char s[20],*l;

fp = fopen("file.txt","r+");

while((*l = fgetc(fp)) != EOF)
{
if (strcmp(l,"}") == 0)
{
fscanf(fp,"%[^{]", s);
printf("%s", s);
break;
}
}

fclose(fp);
}

int main() {

listagem();
}

该文件包含“我们}在{2019 年。”写的,所以它应该在运行后显示“in”,但只有当我直接在“main()”中运行代码时才会显示“in”。当试图在“listagem()”中运行它,然后在“main()”中调用它时,运行程序后它没有任何显示。

最佳答案

您已将 l 声明为 char 指针,但您从未为其分配内存。

char *l = malloc(sizeof(*l));
if(l == NULL){
printf("Could not allocate memory for character buffer.\n");
return;
}

请确保您也在函数末尾 free(l);

编辑:
您可能还想向 printf() 添加换行符 (\n)。

关于c - 函数调用main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55886085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com