#include <stdio.h>
#define TRUE 1
#define FALSE 0
typedef struct contact {
char firstname [40];
char lastname [40];
char address [100];
char phone[10];
}contact;
int main()
{ FILE *pFile;
contact entry = {""};
int choice, firstname_flag = TRUE, lastname_flag = TRUE, address_flag = TRUE, phone_flag = TRUE;
pFile = fopen("C:\\contacts.txt", "a+");
if(!pFile){
printf("File could not be open.");
return 1;
}
do{
printf("Choose a selection:\n\n");
printf("1. First name:\n");
printf("2. Last name:\n");
printf("3. Address:\n");
printf("4. Phone number:\n\n");
scanf("%d", &choice);
}while((choice < 1 || choice > 4));
switch (choice){
case 1:
firstname_flag = FALSE;
printf("Please enter first name: \n");
scanf("%s", &entry.firstname);
break;
case 2:
lastname_flag = FALSE;
printf("Please enter last name: \n");
scanf("%s", &entry.lastname);
break;
case 3:
address_flag = FALSE;
printf("Please enter address: \n");
scanf("%s", &entry.address);
break;
case 4:
phone_flag = FALSE;
printf("Please enter phone number: \n");
scanf("%s", &entry.phone);
break;
default:
break;
}
printf("\nYou will now be asked to enter the other items. \n\n");
if(firstname_flag){
printf("Please enter first name: \n");
scanf("%s", &entry.firstname);
}
if(lastname_flag){
printf("Please enter last name: \n");
scanf("%s", &entry.lastname);
}
if(address_flag){
printf("Please enter address: \n");
scanf("%s", &entry.address);
}
if(phone_flag){
printf("Please enter phone number: \n");
scanf("%s", &entry.phone);
}
fwrite (here)
fclose(pFile);
getchar();
return 0;
}
這是我到目前爲止的代碼。首先是有什麼明目張膽的作爲無效或錯誤的練習等?第二我想寫名字,姓氏,地址和電話號碼到一個文件。我不確定是否需要寫入「輸入」。另外,我注意到當選擇Address時,它幾乎就像緩衝區不是空的,並且我在後面放置了123 Park,Park將被錯誤地用作第一個名字,並且我將放入的下一個條目將是Last名稱。任何有關代碼使用和任何建議的建議將不勝感激。再次感謝地址預訂和寫入文件
兩個快速觀察。 'main'太長,將它分成單獨的函數。縮進不一致。看看和[astyle](http://astyle.sourceforge.net/)並觀察它對你的代碼有什麼作用。 – Jan
大部分縮進問題可能是因爲我試圖讓它在這裏看起來合理。 – Questioneer