这是出问题的函数块儿
void CompareData(wchar_t username[20], wchar_t password[20]) {
char un[256], pw[256];
//printf("before username %20S\n", username);
//printf("before password %20S\n", password);
WideCharToMultiByte(CP_ACP, 0, username, wcslen(username) + 1, un, 256, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, password, wcslen(password) + 1, pw, 256, NULL, NULL);
//printf("char username %20s\n", un);
//printf("char password %20s\n", pw);
userdata data[20] = { 0 };
FILE* file;
file = fopen("D:\\myproj\\Signin\\Debug\\userdata\\data.txt", "a+");//创建文件对象
if (NULL == file) {
printf("Open file failed or no this file!\n");
return;
}//判断文件是否正常打开
int i = 0;
while (!feof(file)) {
fscanf(file, "%s%s", data[i].userName, data[i].passWord);
i++;
}//将文件中的用户数据赋给预备好的空结构体
int cycle;
do {
for (cycle = 0; cycle < i; cycle++) {
if (strcmp(un, data[cycle].userName) == 0&&strcmp(pw, data[cycle].passWord) == 0) {//就是这里有问题
LOGFONT f;
cleardevice(); // 清除屏幕
putimage(0, 0, &img_background);
DrawInputBox(500, 300, 1000, 340, input_pw);
settextcolor(RED); // 设置字体颜色
outtextxy(300, 550, L"登录成功。");
FlushBatchDraw();
break;
}
}
if (cycle == i) {
userdata* p = (userdata*)malloc(sizeof(userdata));
strcpy(p->userName, un);//把username的值赋给结构体内的变量
strcpy(p->passWord, pw);
fprintf(file, "%s%s", p->userName, p->passWord);
cleardevice(); // 清除屏幕
putimage(0, 0, &img_background);
DrawInputBox(500, 300, 1000, 340, input_pw);
settextcolor(RED); // 设置字体颜色
outtextxy(300, 550, L"您输入的账号或密码错误,已经帮您注册新用户。");
FlushBatchDraw();
free(p);
break;
}
} while (1);
fclose(file);
}
不能发图片我就挂个链接
麻烦大佬帮我看一下到底是怎么回事
拜托了QAQ