C++ FILE to fstream?
C++ FILE to fstream?
我不是这方面的专家,但我有以下代码:
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兼容。
更多信息:
谢谢大家,但它似乎忽略了一些价值
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;
不过,这可能有点错误——现在您的函数原型说keys
是int
,但您使用%s
格式将其传递给fprintf
,该格式用于字符串,而不是int
。照原样,代码会产生未定义的行为,而且它并不能完全确定您真正想要的东西。我做了一个我认为合理的猜测,但我不太确定。
编辑:如果你试图写出keys
的原始字节,它看起来像:
output_file.write(reinterpret_cast<char *>(&keys), sizeof(keys));
谢谢你的建议@ildjarn。
http://www.cplusplus.com/reference/iostream/ostream/write/
需要注意的是,您可以在C++中使用相同的C风格编写。因此,您的所有C代码都将在C++中工作!这通常是时间更快乐的解决方案,尤其是对于不需要闪电般快速的IO。
要使用流:
std::ofstream foo; //Declaring the ofstream object
foo.open("file_name"); //Setting the output file name
foo<<keys; //Now it's ready to take << input!
foo.close(); //When you're done with the file
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 在fstream期间忽略空行
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用fstream对txt文件中的数字进行循环
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- "no matching function for call to 'Vector::Vector'"错误
- fstream to read MSR
- C++ FILE to fstream?