我不是这方面的专家,但是我有以下代码:

FILE *OUTPUT_FILE;

OUTPUT_FILE = fopen(file, "a+");

fprintf(OUTPUT_FILE, "%s", &keys );

fclose(OUTPUT_FILE);

我想将其传递给fstream语法

喜欢
ofstream fs;

????

它们包含在此功能中:
int Store(int keys, char *file)

我知道这是一个C函数,但是由于我正在学习C++,所以我想知道如何将其转换为C++

对不起,我不知道还有什么或者fs是否与fopen兼容。

更多信息:

谢谢大家,但似乎忽略了一些值(value)观
    int Store(int keys, char *file)
    {


    ofstream output_file("log.txt");
    output_file << keys;
    output_file.close();

    cout << keys;

    return 0;
    }

当输出文件时,我只看到一个D,我可以在控制台上看到按键的十六进制值,但没有在文本上打印...。

最佳答案

首先,通常应将ALL_CAPS保留用于宏-将其用于保存FILE *的普通变量通常是一个糟糕的主意。

至于其余的,它看起来像这样:

std::fstream output_file(file, std::fstream::in | std::fstream::out | std::fstream::app);
output_file << keys;

不过,这可能有点错误-现在您的函数原型(prototype)说keysint,但是您要使用fprintf格式将其传递给%s,该格式用于字符串而不是int。照原样,代码会产生未定义的行为,并且不能完全确定您真正想要的是什么。我猜测是合理的,但我不太确定。

编辑:如果您要写出keys的原始字节,则看起来像这样:
output_file.write(reinterpret_cast<char *>(&keys), sizeof(keys));

感谢您的建议@ildjarn。

关于c++ - C++文件到fstream吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6462251/

10-11 23:04
查看更多