簡體   English   中英

為什么我的程序不打印具有以下憑據的Empid?

[英]why my program not printing empid with the following credentials?

我已經使用結構編寫了一個員工數據庫,並提供了以下憑據

員工名稱sachin mirajkar員工ID abcde12345員工工資為123456789

對於此輸入,只有emplpyee ID未顯示在屏幕上,請幫助

#include <stdio.h>
struct employees_database {
char name[30],salary[12],empid[11];
};
int main()
{
struct employees_database emp[1];
int i,j;
for(i=0;i<1;i++)
{
    printf("Enter name of employee: ");
    scanf("%[^\n]s",emp[i].name);
    for(j=0;emp[i].name[j];j++)
    {
        if(!((emp[i].name[j]>'@' && emp[i].name[j]<'[')||(emp[i].name[j]>'`' && emp[i].name[j]<'{')||(emp[i].name[j]==' ')))
            goto END;
    }
    printf("\n Enter employee id:");
    scanf("%s",emp[i].empid);
    for(j=0;emp[i].empid[j];j++)
    {
        if(!((emp[i].empid[j]>'@' && emp[i].empid[j]<'[')||(emp[i].empid[j]>'`' && emp[i].empid[j]<'{')||(emp[i].empid[j]>'/' && emp[i].empid[j]<':')))
            goto END;
    }
    printf("\n Enter salary:");
    scanf("%s",emp[i].salary);
    for(j=0;emp[i].salary[j];j++)
    {
        if(!(emp[i].salary[j]>'/' && emp[i].salary[j]<':'))
           goto END;
    }
}
printf("\nEmployee ID \t  Employee name  \t\t Employee salary\n");
for(i=0;i<1;i++)
    printf(" %s \t %s \t\t %s \n",emp[i].empid,emp[i].name,emp[i].salary);
return 0;
if(0)
    END: printf("enter valid credentials\n");
}

請檢查您的scanf()函數調用。

改變中

scanf("%[^\n]s",emp[i].name);

scanf("%s",emp[i].name);

應該可以

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM