我不是这方面的专家,但是我有以下代码:
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)说
keys
是int
,但是您要使用fprintf
格式将其传递给%s
,该格式用于字符串而不是int
。照原样,代码会产生未定义的行为,并且不能完全确定您真正想要的是什么。我猜测是合理的,但我不太确定。编辑:如果您要写出
keys
的原始字节,则看起来像这样:output_file.write(reinterpret_cast<char *>(&keys), sizeof(keys));
感谢您的建议@ildjarn。
关于c++ - C++文件到fstream吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6462251/