✒️修改个人信息交互界面
修改个人信息交互界面的实现
当前进度
.---+- include -+- tools -+- color.h
| | +- hint.h
| | +- info.h
| |
| +- user -+- user.h
| |
| +- good -+- good.h
| |
| +- order -+- order.h
| |
| +- menu -+- menu.h
| |
| +- interface -+- interface.h <---
| |
| +- config.h
|
+- src -+- tools -+- color.c
| +- hint.c
| +- info.c
|
+- data -+- id.txt
| +- user.txt
| +- good.txt
| +- order.txt
|
+- user -+- user.c
|
+- good -+- good.c
|
+- order -+- order.c
|
+- menu -+- menu.c
|
+- interface -+- mainInterface.c
| -+- adminInterface.c
| -+- userInterface.c
| -+- infoInterface.c
| -+- modifyInterface.c <---
| -+- sellerInterface.c
| -+- goodInterface.c
| -+- buyerInterface.c
|
+- main.c
添加辅助宏
// interface.h
#define make_modify(TYPE, W, HO) \
static void modify_##TYPE() {\
char buffer[MAX_LEN];\
printf("Please input new %s: ", #TYPE);\
scanf("%s", buffer);\
W##HO* x = get##W##HO(cur##W##HO);\
strcpy(x->TYPE, buffer);\
successMessage();\
}
这个宏不止会在这一个界面中用到。
修改个人信息交互界面的实现
#include "interface/interface.h"
#include <stdio.h>
#include <string.h>
static void modify_passwd() {
char buffer[MAX_LEN];
printf("Please input current password: ");
scanf("%s", buffer);
User* u = getUser(curUser);
if (strcmp(u->passwd, buffer)) fail
printf("Please input new password: ");
scanf("%s", buffer);
strcpy(u->passwd, buffer);
successMessage();
}
make_modify(contact, U, ser)
make_modify(address, U, ser)
static HANDLER handler[] = {modify_passwd, modify_contact, modify_address};
make_interface(M, ODIFY)
注意修改密码的时候需要用户输入一下当前密码以确认身份。
到此,我们完成了修改个人信息交互界面的实现。
最后更新于
这有帮助吗?