我正在尝试将一个结构写入.dat文件,当我打开它时,它会向我显示以下内容:
“1^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@041720881^@^@^@^@^@^ @^@^@^@^@^@Denko^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Brenko^@^@^@^ @^@^@^@^@^@^@^@^@^@^@13.07.2000^@^@^@^@^@^@^@^@^@^@ "
它在实际值之间添加随机符号。现在,当我至少尝试读取和打印一些值时,它就是不起作用。就像缓冲区是空的一样。但我遵循了我阅读的说明和指南。
使用fwrite或类似的方法不是一个选择,因为我必须使用这些特定的函数write()和read().
我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
struct info{
char id[20];
char telefon[20];
char ime[20];
char priimek[20];
char datum[20];
};
Run Code Online (Sandbox Code Playgroud)
int main(int argc, char* argv[]) {
struct info dude =
{
"01",
"041720881",
"Denko",
"Brenko",
"13.07.2000"
};
struct info dude2 =
{
"02",
"041581734",
"Denko",
"Badenko",
"13.07.1990"
};
if(strcmp(argv[1], "-c") == 0){
int fd = open("xpo.dat", O_CREAT| O_APPEND | S_IRWXG, 0666); …Run Code Online (Sandbox Code Playgroud) c ×1