C++ Can';t使用C+保存文本文件+;在Linux上

C++ Can';t使用C+保存文本文件+;在Linux上,c++,linux,file,pointers,save,C++,Linux,File,Pointers,Save,我想我又遇到了指针问题。我创建了一个简单的函数,可以将字符数组保存到指定的文件中这是我所有的代码: #include <stdio.h> #include <string.h> void Output(const char*, const char*, const char*); void OutPutSomething(); // main.cpp -------------------------------------------------- int main

我想我又遇到了指针问题。我创建了一个简单的函数,可以将字符数组保存到指定的文件中这是我所有的代码

#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!");
    }
}
#包括
#包括
无效输出(常量字符*,常量字符*,常量字符*);
void OutPutSomething();
//main.cpp--------------------------------------------------
int main(int argc,字符**argv){
字符消息[256];
snprintf(消息,256,“此消息将被保存\n”);
输出(“Output.txt”,消息,“w”);
返回0;
}
void OutPutSomething(){
输出(“Output.txt”,“将不保存此文本(???)\n”,“w”);
}
无效输出(常量字符*文件名、常量字符*文本、常量字符*模式){
文件*输出文件;
OutputFIle=fopen(文件名,模式);
if(OutputFIle!=NULL){
printf(文本“\n”);
fputs(文本、输出文件);
fclose(输出文件);
}否则{
printf(“输出函数失败!”);
}
}
因此,我的问题是:当从主函数调用
Output()
函数时,该函数工作正常-文本保存在文件中。但是,当我从
OutPutSomething()
调用
Output()
函数时,它没有正确地将文本保存到文件中(它只保存了一个“\B0”文本)。我看到控制台中显示的
printf()
文本,但文本未保存

原因可能是什么?谢谢

更多信息:
我使用Code::Blocks(GCC编译器),该应用程序是一个控制台应用程序。未链接库,未添加其他标题。看到这么简单的事情不起作用,令人沮丧。

您的代码在我的系统上运行良好。我同意其他人的观点,即您不应该将函数实现放在头文件中。

您的代码在我的系统上运行良好。我同意其他人的观点,即不应该将函数实现放在头文件中。

通常不应该在头文件中定义函数。头文件通常只声明函数签名,定义应该位于
.cpp
文件的其他位置,该文件可以独立编译,然后链接到最终的二进制文件中。这是完整的代码吗#看起来好像是失踪了。这看起来不像C++代码,它更像C代码。这里也适用于其他人。也许你正在运行一些其他代码,而不是这里显示的代码。例如,您可能正在使用一个名为“Main.h”的文件,但还有另一个较旧的版本名为“Main.h”,这就是实际使用的版本?或者您正在编辑一个名为“main.h”的文件,但是在错误的目录中?您通常不应该在头文件中定义函数。头文件通常只声明函数签名,定义应该位于
.cpp
文件的其他位置,该文件可以独立编译,然后链接到最终的二进制文件中。这是完整的代码吗#看起来好像是失踪了。这看起来不像C++代码,它更像C代码。这里也适用于其他人。也许你正在运行一些其他代码,而不是这里显示的代码。例如,您可能正在使用一个名为“Main.h”的文件,但还有另一个较旧的版本名为“Main.h”,这就是实际使用的版本?或者你正在编辑一个名为“main.h”的文件,但是在错误的目录中?在我的系统上也能工作。肯定还有其他问题,不是这里显示的代码的一部分。也适用于我的系统。肯定还有其他问题,不是这里显示的代码的一部分。