2013-02-27 4 views
0

Теперь у меня есть еще одна проблема с этим, после того как я изменил свой код, как показано ниже, он все еще показывает ошибку. Внутри кодирования не было никакого красного подчеркивания, поэтому я не могу узнать, где ошибка. Итак, любая ошибка этого кодирования?Менеджер контактов с помощью программы c с использованием структуры разного кода

struct contact 
{ 
    char name[20],email[20]; 
    int hpnum; 
}add; 
int option; 
FILE *f; 

void addcontact(struct contact list[100]); 
void read(struct contact list[100]); 

int main (void) 
{ 
    struct contact list[100]; 
    system("cls"); 
    printf("==========Welcome to Jeffery's Contact System Management==========\n"); 
    printf("\t\t\tContact System Main Menu\n"); 
    printf("[1] Create a New Contact\n"); 
    printf("[2] Modified Existing Contact\n"); 
    printf("[3] Delete Existing Contact\n"); 
    printf("[4] Search Existing Contact\n"); 
    printf("[5] Exit\n"); 
    printf("Please enter one of your option.\n"); 
    scanf("%d",&option); 
    switch(option) 
    { 
     //add new contact 
     case 1:addcontact(list);read(list); 
     break; 
    } 

    getch(); 
} 

void addcontact(struct contact list[100]) 
{ 
    char name[20],email[20]; 
    int hpnum,no; 

    printf("\nContact Name: "); 
    scanf("%s",list[no-1].name); 
    fflush(stdin); 
    printf("\nHandphone Number: "); 
    scanf("%d",&list[no-1].hpnum); 
    fflush(stdin); 
    printf("\nE-mail: "); 
    scanf("%s",list[no-1].email); 
} 

void read(struct contact list[100]) 
{ 
    FILE *f; 
    f=fopen("contact.txt","w"); 
    fwrite(list,sizeof(list),100,f); 
    fclose(f); 
} 
+1

Можете ли вы быть более конкретным о чем «его все еще показывая ошибку "означает? – aschepler

+0

Когда я запустил проблему, не будет ошибки, как только я выберу 1-й, чтобы добавить контакт, появится сообщение об ошибке ... ошибка - ошибка проверки времени выполнения # 3 - переменная «нет» используется без инициализации. Если есть обработчик для этого исключения, программа может быть безопасно продолжена. –

ответ

0

Во-первых,fflush(stdin); является undefined ошибка. следует использовать fflush(stdout);

Во-вторых, в функции addcontact(struct contact list[100]) переменная не не не назначен никакой ценности, и вы используете в scanf() функции со значением мусора.

Третий, in read() Функция fwrite(list,sizeof(list),100,f); ошибочна, это должно быть похоже.

fwrite(list, sizeof(struct contact), 100, f); 

Я не уверен, но это выглядит вы предназначены для чтения более одного контакты Таким образом, вы также должны циклическую механизм возможно внутри addcontact функции()

+0

Я изменил на stdout, и я уже начал значение, равное нулю. Я могу закончить свою проблему ... теперь проблема в том, что после того, как я напечатаю всю информацию, файл txt выполняет. Но внутри txt-файла он не отображает никакой информации. –

+0

Если вы инициализируете no до нуля, тогда 'list [no-1]' становится ошибкой, потому что 'no-1' будет' -1'. Вам нужно указать значение + ve для ... –

+0

Да. Теперь ошибок нет. Но теперь проблема заключается в том, что после выполнения файла txt внутри txt-файла нет моей контактной информации. –

 Смежные вопросы

  • Нет связанных вопросов^_^