无法在Linux上使用C ++保存文本文件

时间:2012-09-06 20:05:17

标签: c++ linux file pointers save

我想我再次提出了那些指针问题。我创建了一个简单的函数,将char数组保存到指定的文件中。 这是我的所有代码

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

void Output(const char*, const char*, const char*);
void OutPutSomething();

// main.cpp --------------------------------------------------
int main(int argc, char** argv) {
    char Message[256];
    snprintf(Message, 256, "This message will be saved\n");
    Output("Output.txt", Message, "w");
    return 0;
}

void OutPutSomething() {
    Output("Output.txt", "This text will not be saved (???)\n", "w");
}

void Output(const char *FileName, const char *Text, const char *Mode) {
    FILE *OutputFIle;
    OutputFIle = fopen(FileName, Mode);
    if (OutputFIle != NULL) {
        printf(Text, "\n");
        fputs(Text, OutputFIle);
        fclose(OutputFIle);
    } else {
        printf("Output function failed!");
    }
}

所以,我的问题是这样的:当从主函数调用时Output()函数正确地运行 - 文本保存在文件中。然而,当我从Output()调用OutPutSomething()函数时,它不会正确地将文本保存到文件中(它只保存'\ B0'文本)。我看到printf()在控制台中显示的文字,但文本未保存。

可能是什么原因?谢谢!

更多: 我使用Code :: Blocks(GCC编译器),应用程序是一个控制台应用程序。没有链接的库,没有添加其他标题。很沮丧地看到这些简单的事情不起作用。

1 个答案:

答案 0 :(得分:3)

您的代码在我的系统上正常运行。我同意其他人的意见,你不应该在头文件中添加函数实现。