Nếu muốn ghi dữ liệu nhị phân ra file, bạn hãy tham khảo chương trình nhỏ sau đây, nó demo việc tạo file mới rồi ghi 1 chuỗi byte trong biến dữ liệu ra file thông qua việc gọi các hàm trong thư viện io.h cấp thấp (_open,_write, _read, close,...)
Code:
//----------------------------------
//Chương trình này mở file để lưu dữ liệu
//rồi lưu 1 chuỗi dữ liệu của biến buffer ra file
//----------------------------------
//include các file đặc tả thư viện cần dùng
#include
#include
#include
#include
#include
#include
//định nghĩa biến chứa dữ liệu cần lưu
char buffer[] = "This is a test of '_write' function";
//điểm nhập của ứng dụng
void main (void) {
int fh;
unsigned byteswritten;
//mở file để ghi dữ liệu nhị phân
if((fh = _open("write.o", _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1) {
//ghi dữ liệu ra file
if((byteswritten = _write(fh, buffer, sizeof(buffer))) == -1)
perror("Write failed");
else
printf("Wrote %u bytes to file\n", byteswritten);
//đóng file
_close (fh);
}
}
Code:
//----------------------------------
//Chương trình này mở file để lưu dữ liệu
//rồi định dạng các dữ liệu cần ghi thành dạng văn bản
//rồi lưu chuỗi văn bản ra file
//----------------------------------
//include các file đặc tả thư viện cần dùng
#include
#include
FILE *stream;
//điểm nhập của ứng dụng
void main (void) {
//định nghĩa các biến chứa dữ liệu cần lưu
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
//mở file để ghi chuỗi
stream = fopen ("fprintf.out", "w");
//định dạng dữ liệu thành văn bản rồi ghi kết quả
fprintf (stream, "%s%c", s, c);
//định dạng dữ liệu thành văn bản rồi ghi kết quả
fprintf (stream, "%d\n", i);
//định dạng dữ liệu thành văn bản rồi ghi kết quả
fprintf (stream, "%f\n", fp);
//đóng file lại
fclose (stream);
//gọi tiện ích type của hệ thống hiển thị nội dung file lên mà hình
system("type fprintf.out");
}
Code:
#include
//định nghĩa kiểu dữ liệu người dùng
struct Date {
int mo, da, yr;
};
//điểm nhập ứng dụng
void main() {
//định nghĩa biến dữ liệu cần ghi
Date dt = { 6, 10, 92 };
//tạo đối tượng miêu tả file cần ghi
ofstream tfile ("date.dat", ios::binary);
//ghi dữ liệu bằng tác vụ write
tfile.write ((char *)&dt, sizeof dt);
}
Code:
//định nghĩa kiểu dữ liệu người dùng
struct Date {
int mo, da, yr;
};
//định nghĩa các biến cần dùng
HANDLE hFile;
DWORD dwBytesWritten;
//định nghĩa biến dữ liệu cần ghi
Date dt = { 6, 10, 92 };
//tạo file để đọc/ghi
hFile = CreateFile("outdata.bin", // file name
GENERIC_READ | GENERIC_WRITE, // open for read/write
0, // do not share
NULL, // no security
CREATE_ALWAYS, // overwrite existing file
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
//kiểm tra kết quả
if (hFile == INVALID_HANDLE_VALUE) {
ErrorHandler("Could not create temporary file.");
}
//ghi nội dung ra file
WriteFile(hFile, &dt, sizeof(dt),
&dwBytesWritten, NULL);
//đóng file lại.
CloseHandle(hFile);