1
私は基本的にちょうどユーザーの入力を受け取り、チェックの形で出力するプログラムを作成しています。私の問題は、2つの文章を入力していて、2番目の文はうまくいきますが、最初の文を完全にスキップすることです!ユーザーの姓が機能していますが、最初の名前が「z」を出力するのはそれが最も奇妙なことです。私の教師の哲学はそれを自分自身で把握しています。だから誰も私を助けることができますか?ここに私のコードがある...Cプログラム、チェックを設計する
#include<stdio.h>
#include<string.h>
int main()
{
char date[8];
int checkNum;
char payeeFirst[10];
char payeeLast[10];
double amount;
char memo[50];
char wordAmount[100];
printf("Please enter the date: ");
scanf("%s", &date);
printf("Please enter the check number: ");
scanf("%d", &checkNum);
printf("Please enter the payee First name: ");
scanf("%s", &payeeFirst);
printf("Please enter payee last name: ");
scanf("%s", &payeeLast);
printf("Please enter amount: ");
scanf("%d", &amount);
printf("Please enter amount in words: ");
fgets (wordAmount, sizeof(wordAmount)-1, stdin);
printf("Please enter memo: ");
fgets (memo, sizeof(memo)-1, stdin);
printf(" \n");
printf("Date: %s .\n", date);
printf("Check Number: %d .\n", checkNum);
printf("Payee: [%s] [%s] .\n", payeeFirst, payeeLast);
printf("Amount: %d .\n", amount);
printf(" Check %d \n", checkNum);
printf(" Date: %s \n", date);
printf("Pay to the\n");
printf("Order of %s %s $%d \n", payeeFirst, payeeLast, amount);
printf("%s", wordAmount);
printf(" \n");
printf(" \n");
printf("Memo: %s \n", memo);
return 0;
}
文字列をchar []配列に読み込むときに&記号が必要ではないと思います。 scanf( "%s"、日付)のみでなければなりません。編集:そして、私はあなたのコードを破ると思うことを意味する必要はありません。 – Akron
gccを使用している場合は、 '-Wall'フラグを追加してください。 'scanf'を間違って使用すると、警告が表示されます。ここのように:http://ideone.com/oD5F4 –
私はあなたの文字列がnullで終了することを確認します。おそらく、配列の内容を0に初期化します。 – Akron