fprintf打印垃圾到txt文件

时间:2016-09-27 22:27:22

标签: c

我遇到字符串问题而且c。

我正在尝试做一些非常简单的事情:将int转换为字符串并以下列方式将其打印到txt文件中。

const char * test_string() {
    char s[5];
    int num = 123;
    sprintf(s, "%d", num);
    return s;
}

int save() {
    FILE *fh = fopen("test.txt", "w");
    const char * text = test_string();
    fprintf(fh, "%s", text);
    fclose(fh);
}

然而,对于这个简单的任务,我得到以下结果:

Üþ(

我想帮助解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:3)

stest_string中的局部变量,因此在test_string返回时会被销毁。然后,您尝试打印不再存在的变量的值。