C 程序设计 - 文件 - fwrite

标签 c file binary fwrite

我有一个关于编程和文件的问题。

while(current!=NULL)
{
  if(current->Id_Doctor!='\0')
  {
    current=current->next;
    id_doc=(current->Id_Doctor);
  }
  if(current->Id_Doctor=='\0')
  {
    id_doc=id_doc+1;
    printf("%d", id_doc);
    break;
  }
}
fwrite(&id_doc, sizeof(char), 1, Archivo);

我不知道为什么,但它不会在名为“Archivo”的二进制文件上写入 id_doc 的值...可能是什么问题? 我添加了 id_doc 的 printf 并打印了值..我真的不知道

好的,这是完整的代码(更多-更少):

struct Medico
{
  int Id_Doctor;
  int Estado;
  char Nombre[60];
  char Clave_Acceso[20];
  char Especialidad[40]; 
  struct Medico *next;
};
void Dar_Alta_Med (int estado);
void MenuPrincipal(char enta);
int main(void)
{
  char enta;
  MenuPrincipal(enta);
}
void Dar_Alta_Med(int estado)
{
  struct Medico * head = NULL;
  struct Medico * prev, *current;
  char nombre_doc[60], especialida[40], password[20];
  int id_doc=0, estado_doc=1;
  FILE *Archivo;
 const char *md1="\n<md>\n";
  const char *id_doc1="<id_doctor> ";
 Archivo=fopen("md.dat", "ab+");
  fwrite(md1, 1, strlen(md1), Archivo);
  fwrite(id_doc1, 1, strlen(id_doc1), Archivo);
  current = (struct Medico *) malloc (sizeof(struct Medico));
  current->Id_Doctor=id_doc; 
  while(current!=NULL)
    {
      if(current->Id_Doctor!='\0')
    {
      current=current->next;
      id_doc=(current->Id_Doctor);
    }
      else
    {
      id_doc=id_doc+1;
      printf("%d", id_doc);
      break;
    }
    }
  fwrite(&id_doc, sizeof(id_doc), 1, Archivo);
  printf("Ingresa el nombre del Doctor a dar de alta: ");
  fclose(Archivo);
}

我快死了,请帮忙:/

最佳答案

尝试添加 fflush(Archivo); 以强制写入所有缓冲数据。

另外,这个语句:if(current->Id_Doctor=='\0') 真的应该是一个 else 因为没有其他东西可以是但是 '\0'

关于C 程序设计 - 文件 - fwrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282823/

相关文章:

c++ - 在特定位置向字符串添加空格

c - 使用 _pipe 非 block 重定向 STDOUT

android - 通过 Intent 从文件管理器中选择文件

c - 使用 C 将整数转换为其二进制表示形式?

java - Java输出值随时间的变化

python - 从文本文件添加两个矩阵(Python 无模块)

macOS 上的 C 程序无法打开其输入文件

c - 在这个循环中创建了多少个临时变量?

c - unicode 排序规则 NIF 运行速度比纯 Erlang 实现慢

c - 在输入期间跳过第一个 fgets() 调用?