>

나는 프로그래밍에서 멍청한 놈이므로 아래 코드가 좋지 않다고 탓하지 마십시오. 재고 시스템에 관한 프로젝트를하고 있습니다. 이 시스템에는 수정 및 검색을 포함한 5 가지 기능이 있습니다. 내 생각은 사용자가 레코드 번호를 입력하고 txt에 저장된 데이터를 배열로 다시 가져 와서 올바른 ID로 데이터를 표시하는 것입니다.이를 통해 사용자는 특정 구조 배열을 편집 할 수 있습니다. 그러나 txt의 데이터를 배열로 가져 오는 방법을 알 수 없습니다. 그것은 poissibe 또는 다른 대안입니다.

선언

#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #define true 1
 #define false 0
struct RecordData {
     char RecordNum[10]; 
     char ItemName[ 50 ]; 
     int ItemNum ; 
     char Category[ 50 ];
     int Quantity;
     char Recipient[ 50 ];
     char Destination[ 50 ];
     char Delivery[ 100 ];
}; 
struct RecordData record[MAX];
FILE *fp;

함수 추가 레코드

int addrecord(){
    int x, i = 0;
    char ch, yesno;
    char space = ' ';
    doagain:
        printf("1) Enter Record Number:");
        gets(record[i].RecordNum);
        printf("2) ItemName\nEnter :");
        gets(record[i].ItemName);
        printf("3) ItemNumber\nEnter :");
        scanf("%d%c", &record[i].ItemNum, &ch);
        printf("4) Category\nEnter : ");
        gets(record[i].Category);
        printf("5) Quantity\nEnter : ");
        scanf("%d%c", &record[i].Quantity, &ch);
        printf("7) Recipient\nEnter : ");
        gets(record[i].Recipient);
        printf("8) Final Destination\nEnter : ");
        gets(record[i].Destination);
        printf("9) Delivery status \nEnter : ");
        gets(record[i].Delivery);
        fp = fopen("stock.txt", "a");
        fprintf(fp, "%04d\n", i);
        fprintf(fp, "%s\n%d\n%s\n%d\n%s\n%s\n%s\n%c\n", record[i].ItemName, record[i].ItemNum, 
        record[i].Category, record[i].Quantity, record[i].Recipient, record[i].Destination, record[i].Delivery, space);
        fclose(fp);
    enterys:
        printf("Do you want to add other record? Yes(Y) or No(N)");
        scanf("%s", &yesno);
    switch (yesno){
        case 'Y':
        case 'y':
            i++;
            goto doagain;
            break;
        case 'N':
        case 'n':
            printf("end program\n");
            system("cls");
            return main();
            break;
        default:
            printf("you have enter wrong input");
            goto enterys;
    }
}

메인

int main(){
    int num;
    char space, ch;
    mainGUI:
        printf("1. Add New Item<s>:");
        printf("\n2. Display Item Record:");
        printf("\n3. Search Item Information:");
        printf("\n4. Modify Item Record<s>:");
        printf("\nDelete Item Record<s>:");
        printf("\nWhat is your option? <1-5>");
        scanf("%d", &num);
        system("cls");
        switch (num)
        {
            case 0:
                printf("Quit^_^");
                system("cls");
                break;
            case 1:
                printf("You Are Now Adding New Item<s>:\n");
                addrecord();
                break;
            case 2:
                printf("You Are Now Displaying Item<s>:");
                display();
                printf("Press any Button to Go Back Menu");
                scanf("%c%c", &ch, &space);
                if (space == ' '){
                    system("cls");  
                    goto mainGUI;   
                }else{
                    system("cls");
                    goto mainGUI;
                }
                break;
            case 3:
                printf("You Are Now searching items New Item<s>:");
                break;
            case 4:
                printf("You Are Now Adding New Item<s>:");
                break;
            case 5:
                printf("You Are Now Adding New Item<s>:");
                break;
            default:
            printf("Enter Wrong input\n");
            goto mainGUI;
            break;


        }
    return 0;

}


  • 답변 # 1

    아래에 언급 된 조각을 확인하십시오. 종소리가납니다.

    fp = fopen("stock.txt", "r");
    if (fp == NULL){
      printf("Cannot open file \n");
      return 0;
    }
    i = 0;
    ch[i] = fgetc(fp);
    while (ch != EOF){
      i++;
      ch[i] = fgetc(fp);
    }
    fclose(fp);
    return 1;
    
    

관련 자료

  • 이전 excel - 찾기 기능에서 변수 추가가 작동하지 않습니다
  • 다음 oracle - 내 데이터베이스에는 매시간 자동 종료가 해결 방법이 있습니까?