我之前已经问过并做过一些我觉得有用的事情(但我是一个初学者,所以故事落入水中)当我试图注册时,我有一个错误,任何人都可以帮忙吗?我有更多的时间发送它(家庭作业)我不会要求别人为我做,只是为了给我指示
service
.channels(CHANNEL_SID)
.members(MEMBER_SID)
.fetch()
.then(member => {
const lastConsumedMessageIndex = member.lastConsumedMessageIndex;
return service.channels(CHANNEL_SID).messages.list({
pageSize: lastConsumedMessageIndex,
limit: lastConsumedMessageIndex
});
})
.then(messages => {
console.log(messages);
// do something with unread messages
})
.catch(error => {
console.error(error);
});
我尝试了很多不同的方式,现在我真的很困惑......
答案 0 :(得分:1)
scanf("%s", &username);
不正确。它应该是scanf("%s", &username[0]);
应该集中注意警告,尤其是涉及的数组/指针。同样低于2行
scanf("%s", &pass[0]);
scanf("%s", &fullName[0]);
fprintf(p, "%s\n%s\n%s", username, fullName, pass);
您将全名写为第二行,但在阅读时,您将第二行读作密码。所以fprintf(p, "%s\n%s\n%s", username, pass,fullName );
不是简单地尝试编译和获取o / p,调试这个简单代码的最佳方法是用笔和纸坐下来,尝试分析每行发生的事情
答案 1 :(得分:0)
你的代码出现了许多错误。我试着尽可能多地修理。以下应该有效。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int signIn(char username[], char pass[]) {
FILE *p;
char user2[30], pass2[30], fullName[50];
if (!(p = fopen("users.txt", "r+"))) {
printf("Could not read from users.txt file\n");
fclose(p);
return 1;
}
int ret = 2;
while (fgets(user2, 30, p) != NULL) {
fgets(pass2, 30, p);
fgets(fullName, 50, p);
// you have written the fullName to the file as a third line, so you must check for this too
if ((strcmp(username, user2) == 0) && (strcmp(pass, pass2) == 0)) {
printf("\nUser and password correct!!!\n");
printf("Logged in as %s", fullName);
ret = 0;
break;
}
}
if (ret == 2)
printf("\nUser or password incorrect!\n");
printf("\n\n");
fclose(p);
return ret;
}
int signUp(void) {
FILE *p;
char username[30], pass[30], fullName[50];
if (!(p = fopen("users.txt", "w+"))) {
printf("Could not write to users.txt file\n");
fclose(p);
return 1;
}
printf("Username: ");
fgets(username, 30, stdin);
printf("Password: ");
fgets(pass, 30, stdin);
printf("Full name: ");
fgets(fullName, 50, stdin);
fprintf(p, "%s%s%s", username, pass, fullName);
printf("You have signed up!\n");
fclose(p);
return 0;
}
int main(void) {
char username[30], pass[30];
int choose;
printf("Welcome to student login system!\n");
printf(" 1: Sign in\n 2: Sign up\n");
printf("--------------------------------\n");
scanf("%d", &choose);
getchar();
if (choose == 1) {
printf("User: ");
fgets(username, 30, stdin);
printf("Password: ");
fgets(pass, 30, stdin);
return signIn(username, pass);
}
else if (choose == 2) {
return signUp();
}
return 0;
}
编辑:我为这个草率的答案道歉,我不在我的主电脑上。此代码适用于阅读1个用户。