一个C语言程序的问题(100分送上 在线等 十万火急 答案一出立即送分)
学生在规定时间之内,把自己的作业答案上传。
打开一个TXT文件anwers.txt,头8个字记录登陆时的用户名,空格后是作业题目,再空格是答案(所有学生的答案都记录在同一个文件)
如果已经超出规定日期,显示错误信息
登陆后,输入5进入“上传作业答案”
我的代码如下`````
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char login[] = "login.txt ";
char answers[] = "answers.txt ";
char username[6], pwd[16];
char uid[6], upw[16];
int getUsername()
{
FILE * in;
in = fopen(login, "r ");
while (fscanf(in, "%s %s ", username, pwd)!=EOF)
{
if (strcmp(uid, username)==0)
return 1;
}
fclose(in);
return 0;
}
int main()
{
printf( "Enter your username: ");
scanf( "%s ", uid);
if (getUsername() == 0)
{
printf( "Username is invalid.\n ");
return 0;
}
printf( "Enter your password: ");
scanf( "%s ", upw);
if (strcmp(upw, pwd)!=0)
{
printf( "Password is invalid\n ");
return 0;
}
return 0;
}
大哥们帮帮改下吧``````````
[解决办法]
看你自己写比较好
输入一个,检验之后就往文件写就是了
[解决办法]
这程序写得一点都不专业,刚上手吧?
if (getUsername() == 0)
写成if (!getUsername())看起来比较专业。
函数划分也一般,输入错误就不给人家再输的机会了。
还没有判断in==NULL的异常情况,唉!