我需要使用登录系统制作日记(基本上是一个读取和写入文件的程序),因此我需要将登录信息保存到文件中。我不知道用户输入的用户名和密码是什么,我想将该变量存储到文件中。此外,我想知道如何才能访问该值。就像说我将变量用户名存储到文件中,然后我结束程序,然后再次运行它,我将如何访问用户名,以便我可以验证启动程序的用户是否输入了正确的用户名。这是我12年级课程的最后一个项目,我们没有合适的comp sci老师,所以我所知道的一切都是自学。所以我对指针不太熟悉,对文件也很新。如果你们有任何链接,你建议我从中学习这两个主题,我们将不胜感激。谢谢阅读。到目前为止我得到的代码:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 1000
void signUp (char username [SIZE], char password [SIZE], char name [SIZE], int age)
{
char null;
printf("\nSign Up Procedure: \n");
scanf("%c", &null);
printf("Please enter your username: ");
gets(username);
printf("Please enter a password: ");
gets(password);
printf("Enter your full name: ");
gets(name);
printf("Enter your age: ");
scanf("%d", &age);
printf("\nUsername: %s, Password: %s, Full Name: %s, Age: %d", username, password, name, age);
}
void logIn(char username [SIZE], char password [SIZE])
{
}
int main()
{
printf("1. Log In\n"); // Enter 1 for logging in
printf("2. Sign Up\n"); // Enter 2 for signing up
int choice;
printf("Choice: ");
scanf("%d", &choice);
char username [SIZE];
char password [SIZE];
char name [SIZE];
int age;
int keepGoing = 0;
while (keepGoing == 0)
{
switch (choice)
{
case (1):
logIn (username, password);
keepGoing = 1;
break;
case (2):
signUp (username, password, name, age);
keepGoing = 1;
break;
default:
printf("Please enter a choice from the given options");
keepGoing = 0;
break;
}
}
FILE * pfile;
pfile = fopen("Planner.txt", "w");
fputs("Hello World", pfile);
fputs("%s", username);
fclose(pfile);
return 0;
}
答案 0 :(得分:0)
我很遗憾听到你的老师没有多大帮助。以下是您应该为此项目做些什么的高级概述。 请注意,我只是根据老师为您的项目提供的说明推荐这些步骤。如果您制作此程序的目的是让其他人使用(即不是作为一次性学校项目),那么您肯定想要使用加密来确保日记内容和用户其他人无法读取登录信息。
为了存储用户名和密码,您需要在用户注册&#34;之后将它们存储在文件中。使用您的程序,然后当您希望允许用户稍后登录时,您需要从文件中读取用户名和密码,并将其与用户输入的内容进行比较。请记住,用户名和密码只是字符串,所以你只需要调用正确的函数将它们写入硬盘上的文件......你不需要做任何比这更难的事情。文件名可以是您硬编码到程序中的内容(例如login.txt)。
将用户名和密码存储在文件中时,需要以特定格式存储它们,以便能够区分这两者。例如,这样做的一种原始方式如下:
file login.txt: username,password
当您在程序中阅读login.txt的内容时,您知道之前之前的所有内容都是用户名,而之后之后的所有内容都是密码。但是,这种格式并不理想,因为如果用户在其用户名或密码中包含逗号,那么您的程序将会中断。为了更好地将此信息存储在文件中,我建议您阅读有关JSON的信息。