我可以仅使用boost库将一些文本输出到文件中吗?
我的代码(官方文档):
#include <ostream>
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/stream.hpp>
namespace io = boost::iostreams;
int main()
{
io::stream_buffer<io::file_sink> buf("log.txt");
std::ostream out(&buf);
// out writes to log.txt
out << "abc";
}
Run Code Online (Sandbox Code Playgroud)
还有另外一种方法吗?(我不想使用标准流).提前致谢.
在c ++(Visual Studio 2010)中使用asm插入时,当我尝试将类型为short的16位变量移动到32位EAX寄存器时,出现"不兼容类型"错误.但是,如果我使用16位AX寄存器,一切正常.这个错误背后的逻辑是什么?谢谢!
#include <iostream>
int main()
{
short sVar;
std::cout << "sVar=";
std::cin >> sVar;
__asm
{
MOV AX, sVar;
SHL AX, 1;
MOV sVar, AX;
}
std::cout << sVar << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud) 所以这是代码:
if(rand_s(&number) != 0) cout << "Random number generator failed!" << endl;
Run Code Online (Sandbox Code Playgroud)
问题是 - 是否意味着每次使用此rand_s(&number)表达式生成的随机数大于零时,程序都会输出失败消息?如果是这样,我为什么要这样的东西呢?
// complete code
unsigned int number = 0;
cout << "Random values are:" << endl;
double max = 1000000.0;
for(int i = 0 ; i<100 ; i++)
{
if(rand_s(&number) != 0)
cout << "Random number generator failed!" << endl;
number = static_cast<unsigned int>(static_cast<double>(number)/UINT_MAX*max)+1;
// output
cout << setw(12) << number;
if((i+1) % 5 == 0) cout << endl;
}
Run Code Online (Sandbox Code Playgroud) #define RGB2BGR(a_ulColor) (a_ulColor & 0xFF000000) | ((a_ulColor & 0xFF0000) >> 16) | (a_ulColor & 0x00FF00) | ((a_ulColor & 0x0000FF) << 16)
Run Code Online (Sandbox Code Playgroud)
你能告诉我这个宏的含义吗?