私は、銀行の誰かが使用する機能を実行するシステムプログラミングクラスのグループプログラムに取り組んでいます。これらの機能には、銀行顧客の追加、顧客の出力バランスなどが含まれます。問題は、顧客の追加機能にあります。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;
}
のMakefile一度出力のスクリーンショットが実行されます。
追記:この機能は、我々は偉大である渡しているが、それはループから抜け出すためにのために、我々はまだ必要なファイルへの書き込みんが。
EDIT:主な機能についてコード: の#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;
}
追加機能を呼び出す何かがループ内にある可能性はありますか? –
この 'Add '関数を呼び出すコードを表示してください。 – Ari0nhh
私の質問にmain関数を追加しました – mimiholli