01/10/2018, 11:37

Viết file ngôn ngữ C!

Em có 2 hàm sau!

Hàm ghi file

void WriteFile(const char* link, const char* mode){
  char* content = (char*)malloc(BUFFER);
  FILE* opf = OpenFile(link, mode);
  
  if(opf != NULL){
    while(TRUE){
      if(WriteContent(&content)){
        fputs(content, opf);
      }
      else{
        puts("jk inserted!");
        break;
      }
    }
  }
  else{
    fputs("Cann't open file!", stdout);
  }
}

hàm nhận nội dung từ người dùng

int WriteContent(char** content){
  char* tmp = (char*)malloc(BUFFER);
  char* condition = (char*)malloc(4);

  condition[0] = 'j';
  condition[1] = 'k';
  condition[2] = '
';
  condition[3] = '';

  fflush(stdin);
  fgets(tmp, BUFFER, stdin);
  if(strlen(tmp) == 3){
    if(strcmp(tmp, condition) == 0){
      free(condition);
      return FALSE;
    }
  }

  strcpy(*content, tmp);
  free(tmp);  
  free(condition);

  return TRUE;
}
  1. Khi viết nội dung vào file thì luôn có 1 dòng đầu tiên là rỗng
  2. Nhập jk thì thông báo “jk inserted” nhưng sau đó chương trình lại thông báo core dump
    Mong mọi người hướng dẫn giúp!
Tao Không Ngu. viết 13:42 ngày 01/10/2018

Hi nghia.
DEBUG.
DEBUG.
DEBUG.

Bài liên quan
0