C语言怎样判定用户没有输入任何东西跳到输入密码 怎么回到用户登入?

在线等~ 跪求高手赐教,感激不尽... 懂得C的朋友们发表发表下意见呗,就算错了没关系.. 程序这东西就是需要不断尝试,不断完善
int flag = 0;
do{
printf("\n\t\t\t\t用户名:");
fflush(stdin);
gets(username);
if(username == '\r' || username == '\n'){
printf("\n\n\n\n\n\t\t\t提示:请输入用户名!");
sleep(1000);
flag = 1;
continue;
}else{
break;
}
}while(flag);
这样为什么不行

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char username[256];
int flag=0;
int i;
for (;;)
{
system("cls");
if (flag==1)
{
printf("用户名不能有空白字符!\n");
}
printf("请输入用户名:\n");
flag=0;
if(NULL == fgets(username, sizeof(username), stdin))
{
printf("输入错误!\n");
return 1;
}
fflush(stdin);
if (strlen(username) -1 ==0)
{
continue;
}
else
{
for (i=0;i<strlen(username);i++)
{
if (username[i]==' ' || username[i]=='\t')
{
flag=1;
break;
}
}
if (flag==0)
{
username[strlen(username)-1]='\0';
printf("username=[%s]\n",username);
break;
}
}
}
printf("请输入密码:\n");
return 0;
}

吃了午饭没事写的玩的追问

谢谢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-22
将用户登入模块写成一个函数
int bootIn(){
//这里写判定用户输入条件,满足返回0 ,否则返回是非0
}
while(1){
if(!bootIn()) break;
}
第2个回答  2013-01-23
可以试试这个!
你那样肯定不行啊啊!
gets(username)
若什么都没输入,直接回车得到的是一个'\0'
你判断条件不对吧!
另外,这个gets不安全尽量少用!

#include <stdio.h>
#include <string.h>
#define BUFSIZE 32
int main()
{
static char username[BUFSIZE];
char *p = username;
while(1)
{
printf("please input username:\n\t\t\t");
p = gets(p);
if(strcmp(p, "\0"))
{
break;
}
}

return 0;
}
第3个回答  2013-01-23
你的意思是要先点登入 然后输入密码?然而 用户点了登陆 没输入密码 怎样让页面跳回到登入界面?如果这样定时一下 返回一个标志位 在规定时间内没输入密码 跳回追问

不是. 默认是先输入用户名, 误输入了个回车 直接跳到密码了.. 怎么再回到输入用户名?

追答

为什么不在上一步 添加一个密码输入不能为空判断 呢 这样最省事儿

追问

求代码~ 思路很混乱 - -~

追答

如果是输入错误 你是怎么操作的 同理呗

第4个回答  2013-01-23
流程图画好了,程序逻辑就清晰了

程序不是调试(改)出来的,程序应该是设计出来的
相似回答