바이너리 * .dat 파일에서 정보를 저장하거나 인쇄하는 방법은 무엇입니까? C 프로그래밍

브라이언트 2

바이너리 모드에있는 * .dat 파일에서 정보를 저장하거나 읽고 싶습니다. 파일에는 다음 데이터 (이진 형식으로 인코딩 됨)가 있습니다.

License: 123456
Owner: John Doe
Value: 10000.00

License: IAMDOE
Owner: Jane Doe
Value: 20000.00

내 코드는 다음과 같습니다.

#include <stdio.h>
#include <string.h>
#define MAXPLEN 80

typedef struct {    
    char none; /* used for registry initiated by '\0' ,should be ingnored */    
    char owner[MAXPLEN];
    char license[6];
    double value;
} veiculo_t;    


/* i need to use the following functions in the process */

void print_registry(veiculo_t *v)
{
    printf("Owner: %s - License: %.6s - Value: %.2lf \n", (*v).owner, (*v).license, (*v).value);
}

void read_registry(veiculo_t *v)
{
    char license2[8];
    printf("Name of the owner:\n");
    fgets((*v).owner,100,stdin);

    printf("License plate:\n");
    fgets(license2,10,stdin);
    memcpy(&(v->license),license2,6);

    printf("Value:\n");
    scanf("%lf",&(*v).value);
}

int op_menu() 
{
    int op;
    printf("\n0 - end\n");
    printf("1 - insert\n");
    printf("2 - print\n");
    printf("option: ");
    scanf("%d",&op);  
    getchar();        
    return op;
}

int main()
{
    int op;
    op_menu();

    if (op=1){
        /* !!!!!HELP HERE!!!!!! */
    }

    if (op=2){
        FILE *f=fopen("veic.dat", "rb");
        if (f == NULL) 
        {
            printf("Not opened!\n");
        }
        else
            /* !!!!!HELP HERE!!!!!! */
    }
}

"스트림"에 대해 많이 알지 못합니다 ... 몇 가지 힌트가 평가 될 것입니다!

우선, 아래를 변경하십시오. 그렇지 않으면 "메뉴"에 들어 가지 않습니다.

op = op_menu();    //op should be assigned by the return value of open_menu
if (op==1){...
if (op==2){...    // I believe you want '==' not '='

주석에 따라 read_registry메서드 를 호출해야합니다 . 추가 된 코드 :

    if (op==1){
        //insert
        veiculo_t *t = malloc(sizeof(veiculo_t));
        read_registry(t);
        FILE *f=fopen("veic.dat", "ab");
        if (f == NULL)
        {
            printf("open file failed\n");
        }
        fwrite(t, sizeof(char), sizeof(*t), f);
        free (t);
    }

    if (op==2){
        //print
        FILE *f=fopen("veic.dat", "rb");
        if (f == NULL)
        {
            printf("Not opened!\n");
        }
        else
        {
            veiculo_t *t = malloc(sizeof(veiculo_t));
            printf("sizeof t: %d\n", sizeof(*t));
            while(fread(t, sizeof(char), sizeof(*t), f))
                print_registry(t);
            free(t);
        }

여러분을위한 예제 코드는 답 이상의 생각을 제공하고 싶지만 코드는 항상 명확하고 강력 해 보입니다. 아래 예제에서는 추가 모드를 사용하여 파일을 작성하고, 매번 파일을 다시 작성하려면 파일을 fopen쓸 때 모드를 변경 합니다.

도움이 되었기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C 프로그래밍 다른 헤더 파일에서 구조의 요소를 인쇄하는 방법은 무엇입니까?

분류에서Dev

C에서 바이너리 데이터를 인쇄하는 방법은 무엇입니까?

분류에서Dev

C # stimulsoft 보고서를 프로그래밍 방식으로 필터링하는 방법은 무엇입니까?

분류에서Dev

Android에서 프로그래밍 방식으로 모바일 장치를 켜는 방법은 무엇입니까?

분류에서Dev

프로그래밍 언어 개발 연습, golang 스타일 인터페이스를 C ++로 컴파일하는 방법은 무엇입니까?

분류에서Dev

UICollectionView를 프로그래밍 방식으로 컨테이너에 추가하는 방법은 무엇입니까?

분류에서Dev

Linux (C 프로그래밍)에서 동적 및 정적 라이브러리를 만들고 사용하는 방법은 무엇입니까?

분류에서Dev

C 프로그래밍에서 재귀를 사용하여 정수의 자릿수 순서를 바꾸는 방법은 무엇입니까?

분류에서Dev

프로그래밍을 통해 Java에서 이미지를 비디오 파일로 인코딩하는 방법은 무엇입니까?

분류에서Dev

C ++ 프로그래밍에서 다음 줄로 이동하는 다른 방법은 무엇입니까?

분류에서Dev

perl의 c : \ root에서 일부 파일의 절대 경로를 인쇄하는 방법은 무엇입니까?

분류에서Dev

IE 페이지 설정을 사용하는 대신 인쇄하는 동안 IE에서 프로그래밍 방식으로 머리글 및 바닥 글을 제거하는 방법은 무엇입니까?

분류에서Dev

C 프로그래밍에서 특정 비트를 보는 방법은 무엇입니까?

분류에서Dev

Objective-C를 사용하여 프로그래밍 방식으로 검색 창에 모서리 반경을 추가하는 방법은 무엇입니까?

분류에서Dev

인스턴스에서 "단일 정보"를 프로그래밍 방식으로 제거하여 마샬링하는 방법은 무엇입니까?

분류에서Dev

Delphi에서 TDatamodule의 디자인 타임 높이 / 너비를 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

분류에서Dev

프로그래밍 방식으로 서브 페이지를 활성화하는 방법은 무엇입니까?

분류에서Dev

바이너리 파일을 C / C ++ 문자열 리터럴로 덤프하는 방법은 무엇입니까?

분류에서Dev

ASP.NET MVC 및 C # 응용 프로그램에서 프로그래밍 방식으로 web.config를 수정하는 방법은 무엇입니까?

분류에서Dev

Shell : 바이너리 파일의 바이트를 읽고 16 진수로 인쇄하는 방법은 무엇입니까?

분류에서Dev

C 프로그램이 txt 파일에서 데이터를로드하는 방법은 무엇입니까?

분류에서Dev

C ++에서 트래픽 덤프 파일의 패킷 정보를 분석하는 방법은 무엇입니까?

분류에서Dev

바이너리 파일 출력을 Base 2 (비트)로 인쇄하는 방법은 무엇입니까?

분류에서Dev

WebView 애플리케이션에 로그인 정보를 저장하는 방법은 무엇입니까?

분류에서Dev

계정이 프로그래밍 방식으로 관리자 그룹에 속하는지 확인하는 방법은 무엇입니까?

분류에서Dev

편집기를 사용하지 않고 Eclipse에서 프로그래밍 방식으로 파일을 저장하는 방법은 무엇입니까?

분류에서Dev

Mac OSX Finder에서 .txt 또는 .text 확장자가없는 프로그래밍 텍스트 파일을 미리 보는 방법은 무엇입니까?

분류에서Dev

파이썬에서 파일의 바이너리 상태를 수정하는 방법은 무엇입니까?

분류에서Dev

프롤로그 프로그래밍에서 술어를 정의하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    C 프로그래밍 다른 헤더 파일에서 구조의 요소를 인쇄하는 방법은 무엇입니까?

  2. 2

    C에서 바이너리 데이터를 인쇄하는 방법은 무엇입니까?

  3. 3

    C # stimulsoft 보고서를 프로그래밍 방식으로 필터링하는 방법은 무엇입니까?

  4. 4

    Android에서 프로그래밍 방식으로 모바일 장치를 켜는 방법은 무엇입니까?

  5. 5

    프로그래밍 언어 개발 연습, golang 스타일 인터페이스를 C ++로 컴파일하는 방법은 무엇입니까?

  6. 6

    UICollectionView를 프로그래밍 방식으로 컨테이너에 추가하는 방법은 무엇입니까?

  7. 7

    Linux (C 프로그래밍)에서 동적 및 정적 라이브러리를 만들고 사용하는 방법은 무엇입니까?

  8. 8

    C 프로그래밍에서 재귀를 사용하여 정수의 자릿수 순서를 바꾸는 방법은 무엇입니까?

  9. 9

    프로그래밍을 통해 Java에서 이미지를 비디오 파일로 인코딩하는 방법은 무엇입니까?

  10. 10

    C ++ 프로그래밍에서 다음 줄로 이동하는 다른 방법은 무엇입니까?

  11. 11

    perl의 c : \ root에서 일부 파일의 절대 경로를 인쇄하는 방법은 무엇입니까?

  12. 12

    IE 페이지 설정을 사용하는 대신 인쇄하는 동안 IE에서 프로그래밍 방식으로 머리글 및 바닥 글을 제거하는 방법은 무엇입니까?

  13. 13

    C 프로그래밍에서 특정 비트를 보는 방법은 무엇입니까?

  14. 14

    Objective-C를 사용하여 프로그래밍 방식으로 검색 창에 모서리 반경을 추가하는 방법은 무엇입니까?

  15. 15

    인스턴스에서 "단일 정보"를 프로그래밍 방식으로 제거하여 마샬링하는 방법은 무엇입니까?

  16. 16

    Delphi에서 TDatamodule의 디자인 타임 높이 / 너비를 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

  17. 17

    프로그래밍 방식으로 서브 페이지를 활성화하는 방법은 무엇입니까?

  18. 18

    바이너리 파일을 C / C ++ 문자열 리터럴로 덤프하는 방법은 무엇입니까?

  19. 19

    ASP.NET MVC 및 C # 응용 프로그램에서 프로그래밍 방식으로 web.config를 수정하는 방법은 무엇입니까?

  20. 20

    Shell : 바이너리 파일의 바이트를 읽고 16 진수로 인쇄하는 방법은 무엇입니까?

  21. 21

    C 프로그램이 txt 파일에서 데이터를로드하는 방법은 무엇입니까?

  22. 22

    C ++에서 트래픽 덤프 파일의 패킷 정보를 분석하는 방법은 무엇입니까?

  23. 23

    바이너리 파일 출력을 Base 2 (비트)로 인쇄하는 방법은 무엇입니까?

  24. 24

    WebView 애플리케이션에 로그인 정보를 저장하는 방법은 무엇입니까?

  25. 25

    계정이 프로그래밍 방식으로 관리자 그룹에 속하는지 확인하는 방법은 무엇입니까?

  26. 26

    편집기를 사용하지 않고 Eclipse에서 프로그래밍 방식으로 파일을 저장하는 방법은 무엇입니까?

  27. 27

    Mac OSX Finder에서 .txt 또는 .text 확장자가없는 프로그래밍 텍스트 파일을 미리 보는 방법은 무엇입니까?

  28. 28

    파이썬에서 파일의 바이너리 상태를 수정하는 방법은 무엇입니까?

  29. 29

    프롤로그 프로그래밍에서 술어를 정의하는 방법은 무엇입니까?

뜨겁다태그

보관