유저찾기

2025. 4. 6. 20:23·C언어

어제 작성한 코드는 계속 범위를 제대로 읽어들이지 못하는 오류가 있었고

그 오류를 고치려고 애썼지만 결국 원인을 찾아내지 못했다.

시간낭비라는 생각이 들어서 갈아엎고 처음부터 다시 시작했다.

우리는 회원출력하는 c파일이 따로 있기 때문에 그걸 복사해서 베이스로 삼고 코드를 이어나갔다.

범위를 아주 정확히 제대로 읽어들였다. 정말 감격스러웠다..

    fp = fopen("all_users.bin","rb");
    for (int i = 0; i < bin_size; i ++)
    {
        fread((void*)&myfree[i], sizeof(myfree[i]), 1, fp);
    }

파일을 열어준 뒤, for문으로 하나하나 읽어들이는 코드가 있어야만 제대로 범위를 읽어냈다.

이전에 만들었던 코드는 메뉴를 선택할때마다 열었는데 포인터 위치가 그때 꼬인거같다.

그래서 fseek 함수를 써서 포인트 위치를 처음으로 돌려놨는데도 별 소용이 없었다. 왜 그런지는 한번 연구해봐야겠다.

            for (int i = 0; i < bin_size; i++)
            {
                if (strcmp(myfree[i].name, user_input)==0)
                {
                    printf("[일치하는 회원 목록]\n");
                    printf("%d. ID:%s  name:%s\n", i+1, myfree[i].id, myfree[i].name);
                }

                else
                    printf("일치하는 회원이 없습니다.\n");
            }

 

일치하지 않을 때도 표기를 해주길래

표기를 할게 아니라 따로 카운트를 해줘야겠다 생각했다.

 

            int cmp=0;
            printf("[일치하는 회원 목록]\n");
            for (int i = 0; i < bin_size; i++)
            {
                if (strcmp(myfree[i].name, user_input)==0)
                {
                    printf("%d. ID:%s  name:%s\n", i+1, myfree[i].id, myfree[i].name);
                    cmp++;
                    
                }

            }
            if (cmp==0)
            {
                printf("일치하는 회원이 없습니다.\n");
            }

처음엔 일치하지 않는 것을 따로 카운트 해주려고 했는데, 생각해보니 그렇게하면 else문이 들어가야한다.

차라리 일치하는걸 카운트 해주고, 그게 0이면 회원이 없다고 출력하면 되겠다는 생각이 들었다.

결과는 대성공이었다.

아이디는 어느정도만 일치해도 다 보여줘야되니 strncmp를 썼다.

 

 

내가 구상했던대로 탁 나오니 기분이 좋았다.

'C언어' 카테고리의 다른 글

cJSON 기본 개념  (0) 2025.04.27
유저찾기 번호노출 수정  (0) 2025.04.07
반환값으로 문자열을 반환하는 함수 만들기  (0) 2025.04.05
0404 개발일지  (0) 2025.04.04
파일 입출력  (0) 2025.04.03
'C언어' 카테고리의 다른 글
  • cJSON 기본 개념
  • 유저찾기 번호노출 수정
  • 반환값으로 문자열을 반환하는 함수 만들기
  • 0404 개발일지
joo_coding
joo_coding
2025.02.18~
  • joo_coding
    주코딩일지
    joo_coding
  • 전체
    오늘
    어제
    • 분류 전체보기 (134) N
      • 일지 (19)
      • 계획표 (7)
      • C언어 (35)
        • 연습장 (12)
      • 과제 (2)
      • C++ (3)
      • python (28)
        • 연습장 (11)
      • TCP IP (4)
      • DB (2)
      • ubuntu (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    c언어 #vscode #gcc #윈도우 #c언어윈도우 #gcc윈도우 #vscode윈도우 #c #c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
joo_coding
유저찾기
상단으로

티스토리툴바