我有unsigned short int(从0到65535),我必须使用stdio并消耗2个字节将其保存到文件中,但我不知道如何。
有什么建议吗?
答案 0 :(得分:2)
我会使用联盟(是的,我不喜欢使用演员......):
template <typename T>
union Chunk {
T _val;
char _data[sizeof(T)];
};
int main(void) {
std::ofstream output;
Chunk<short> num;
num._val = 42;
output.open("filepath.txt");
if (output.good()) {
output.write(num._data, sizeof(num));
}
output.close();
return 0;
}
答案 1 :(得分:1)
http://www.cplusplus.com/doc/tutorial/files/阅读整篇文章很好,但您需要的信息在文章下半部分的“二进制文件”中。
ofstream outputFile;
outputFile.open("yourfile.dat");
unsigned short int i;
i = 10;
outputFile.write(&i, sizeof(i));
outputFile.close();
答案 2 :(得分:1)
如果必须使用stdio.h(而不是iostream):
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE* f;
unsigned short int i = 5;
f=fopen("yourfile","w");
if(f == NULL)
{
perror("yourfile is not open");
exit(EXIT_FAILURE);
}
fwrite(&i,sizeof(i),1,f);
fclose(f);
return 0;
}