亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個是什么問題亞

部分代碼:(主要是這里有問題)

#define USERINFO_FILE?????????????????? "/home/ocelot/pmm/data/info.txt"
//用戶信息表記錄文檔路徑

#define SAVES_HOME_PATH???????????????? "/home/ocelot/pmm/data/"

#define _STRUCT_USER_INFO_SIZE????????? (sizeof(struct user_info))
//struct user_info類型結構體大小

#define _END_LOOP?????????????????????? "$!END_0"

extern struct user_info * getUserInfo()
{
??????? FILE *fp = fopen(USERINFO_FILE,"r");

??????? //若文件不存在,則返回空指針
??????? if(fp == NULL)
??????????????? return NULL;

??????? char??? buf[64];??????????????? //緩沖字符串
??????? int???? user_num = 0;?????????? //用戶數量

??????? //獲取用戶數量
??????? while(fscanf(fp,"%s",buf) != EOF)
??????? {
??????????????? if(buf[0] == '[')
??????????????????????? user_num++;
??????? }

??????? struct user_info??????? *pi = (struct user_info *)malloc(_STRUCT_USER_INFO_SIZE * (user_num+1));
??????? //動態分配結構體數組
??????? fclose(fp);

??????? FILE *fp_s = fopen(USERINFO_FILE,"r");
??????? //若文件不存在,則返回空指針
??????? if(fp == NULL)
??????????????? return NULL;

??????? int???? serial = 0;???????????? //讀入的用戶序號
??????? while(fscanf(fp_s,"%s",buf) != EOF)
??????? {
??????????????? //忽略注釋行
??????????????? if(buf[0] == '#')
??????????????????????? continue;
??????????????? //將Name存入數組
??????????????? if(buf[0] == '[')
??????????????????????? serial++;

if(buf[0] == 'N')
??????????????? {
??????????????????????? printf("##%s##\n",buf);
??????????????????????? //指向下一個用戶
??????????????????????? strcpy(pi->name,//getStrPointStr(buf,':')
??????????????????????????????????????? buf);
??????????????????????? pi+=(_STRUCT_USER_INFO_SIZE * 1);
??????????????? }
??????????????? //將Pw存入數組
??????????????? else if(buf[0] == 'P')
??????????????? {
??????????????????????? sprintf(pi->pw,"%s",getStrPointStr(buf,':'));
??????????????? }
??????????????? //忽略其他屬性
??????????????? else
??????????????????????? continue;
??????? }

??????? //設定結束標志
??????? pi+=(_STRUCT_USER_INFO_SIZE * 1);
??????? sprintf(pi->name,"%s",_END_LOOP);
??????? sprintf(pi->pw,"%s",_END_LOOP);

??????? pi-=(_STRUCT_USER_INFO_SIZE * serial);
??????? //將結構體指針指向第一個用戶

??????? fclose(fp_s);
??????? return pi;
}

輸出:

##Name:ocelot##
##Name:whisper##
##Name:xiaoyue##
##Name:xiaoyue##
##Name:xiaoyue##
##Name:xiaoyue##
##Name:xiaoyue##
登錄:
用戶列表:
[1]?? ?9??U
[2]?? ?Name:xiaoyue
[3]?? ?Name:xiaoyue
[4]?? ?Name:xiaoyue
[5]?? ?Name:xiaoyue
[6]?? ?Name:xiaoyue
[7]?? ?

改了很多次,還是有問題

但用戶數量小于等于3個時不會有這種情況,不知道為什么


正在回答

2 回答

看判斷那兒是不是不對

0 回復 有任何疑惑可以回復我~

編碼就不對了吧

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Linux C語言結構體
  • 參與學習       118466    人
  • 解答問題       166    個

C語言的深入,幫助小伙伴們進一步的理解C語言,趕緊看過來

進入課程

這個是什么問題亞

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號