2016-12-09 1 views
2

저는 은행의 누군가가 사용할 수있는 기능을 실행하는 시스템 프로그래밍 클래스의 그룹 프로그램을 작성했습니다. 이러한 기능에는 은행 고객 추가, 고객의 출력 잔액 등이 포함됩니다. 문제는 고객 추가 기능에 있습니다.C 프로그램이 xcode에서 컴파일되지만 터미널에서 무한 루프가 실행됩니다.

이 함수는 터미널과 퍼티에서 무한 루프로 실행되지만, XCode에서 독립 실행 형 프로그램으로 실행하면 루프가 종료됩니다. 저와 제 그룹 구성원들과 교수님이 간과하고있는 프로그램에 문제가 있습니까? 메이크 번 출력

#include <stdio.h> 
#include <string.h> 
#include "./bank.h" 

void add(FILE *fp) 
{ 
    int i=0; 
    char firstName[20]; 
    char lastName[20]; 
    float camount; 
    int prompt; 
    float samount; 
    float mamount; 
    fseek(fp,0,2); 
do 

{ 
    printf("\nEnter first name: "); 
    scanf("%s", firstName); 
    strcpy(bank[i].firstName, firstName); 

    printf("\nEnter last name: "); 
    scanf("%s",lastName); 
    strcpy(bank[i].lastName, lastName); 

    printf("\nEnter checking account balance: "); 
    scanf("%f", &camount); 
    bank[i].checking = camount; 

    printf("\nEnter savings account balance: "); 
    scanf("%f", &samount); 
    bank[i].savings = samount; 

    printf("\nEnter money market account balance: "); 
    scanf("%f", &mamount); 
    bank[i].moneyMarket = mamount; 

    fwrite(&bank[i],1, sizeof(struct BankInfo),fp); 
    i++; 

    printf("Enter 1 to enter another name and 0 to quit: "); 
    scanf("%d", &prompt); 
    printf("%d\n", prompt); 

    } while(prompt == 1); 

    fclose(fp); 
    return; 
} 

스크린 샷이 실행됩니다 screenshot

(!) 참고 :이 기능은 우리가 큰 인 전달하는하지만 루프의 탈옥을 위해 우리는 여전히 필요로하는 파일에 쓰기 않습니다.

편집 : 주요 기능에 대한 코드 : 사용법 #include 사용법 #include 사용법 #include "bank.h" 사용법 #include "definitions.h"

int main() 
{ 
FILE *fp; 
int selection; 
fp=fopen("bankInfo.dat","ab+"); 

selection=menu(); 

while(selection !=6) 
{ 
switch(selection) 
{ 
    case 1: 
     add(fp); 
     break; 

     case 2: 
      // outputBalance(fp); 
      break; 
     case 3: 
      delete(fp); 
      break; 
     case 4: 
      update(fp); 
      break; 
    case 5: 
     // display(fp); 
      break; 
    case 6: 
      exit(0); 
      break; 
    default: 
      printf("Invalid selection\n"); 
      break; 
    } 
} 
fclose(fp); 
return 0; 
} 
+2

추가 기능을 호출하는 다른 항목이 루프에있을 가능성이 있습니까? –

+2

이 '추가'기능을 호출하는 코드를 보여주십시오. – Ari0nhh

+0

방금 ​​내 질문에 주요 기능을 추가했습니다 – mimiholli

답변

3

사용법 #include 당신은 선택을 할당하는 한 번만. 이렇게하면 문제가 해결됩니다.

while(true) 
{ 
selection=menu(); 
switch(selection) 
{ 
    case 1: 
     add(fp); 
     break; 

     case 2: 
      // outputBalance(fp); 
      break; 
     case 3: 
      delete(fp); 
      break; 
     case 4: 
      update(fp); 
      break; 
    case 5: 
     // display(fp); 
      break; 
    case 6: 
      fclose(fp); 
      exit(0); 
      break; 
    default: 
      printf("Invalid selection\n"); 
      break; 
    } 
} 
return 0; 
+0

고맙습니다! 이것은 하루 종일 우리를 미치게했습니다! 우리는 3 명의 다른 교수에게 물었고 그 중 누구도 그것을 이해할 수 없었습니다. – mimiholli

+0

@ 당신은 물론 맞습니다. 사실 루프 상태에서 선택 값을 전혀 확인할 필요가 없습니다. – Ari0nhh

관련 문제