C语言密码比对问题,求高手指教,不胜感激。

时间:2022-03-26 18:52:16
password.txt 中存放的是abcde     运行程序,输入abcde    strcmp(st,s)==0  为何判否??不判是??
 
#include "stdio.h" 
#include "stdlib.h" 
#include "string.h" 
int main() 

FILE * fp; 
char str[6],st[6],s[6];
 printf("输入登陆密码:\n"); 
gets(st); 
if((fp=fopen("G:\\文本文档\\password.txt","r"))==NULL) 
{ printf("不存在此文件!\n"); 
exit(0); }
 if(fgets(str,9,fp)!=NULL) 
{ strcpy(s,str);
 printf("%s\n",s); }
 if(strcmp(st,s)==0) 
printf("%s\n",st);
 else
 printf("^^^\n"); 
fclose(fp); 
puts(st); 
return 0;
 }

11 个解决方案

#1


没有判断否啊
调试了是正确的
C语言密码比对问题,求高手指教,不胜感激。
还有什么问题?

#2


 if(fgets(str,9,fp)!=NULL) 
 { strcpy(s,str);
  printf("[%s]\n",s); 
  if ('\n'==s[strlen(s)-1]) s[strlen(s)-1]=0;//去掉末尾的\n,如果有
  printf("[%s]\n",s); 

}

#3


设断点,看看到底读入了什么

#4


r = strcmp(a,b);

如果a和b一樣,r等於0;
如果a小於b,r小於0;(按英文字典順序)
如果a大於b,r大於0;(按英文字典順序)

#5


问题赵老师找出来了, 奇怪的是, 你的第二三个abcde之间应该有一空行。 为什么没有, VC6.0 让我很诧异。

#6


  strcmp(AAA,BBB)==0
strcmp 返回值有三个
1: 表示AAA>BBB
-1:表示AAA<BBB
0:  表示AAA=BBB

#7


char str[6]
应改为
char str[ 9]

#8


C语言密码比对问题,求高手指教,不胜感激。C语言密码比对问题,求高手指教,不胜感激。

#9


代码正确的。。。

#10


strcmp是等于是为0,不要粗心

#11


大于返回大于0的数,小于返回小于0的数

#1


没有判断否啊
调试了是正确的
C语言密码比对问题,求高手指教,不胜感激。
还有什么问题?

#2


 if(fgets(str,9,fp)!=NULL) 
 { strcpy(s,str);
  printf("[%s]\n",s); 
  if ('\n'==s[strlen(s)-1]) s[strlen(s)-1]=0;//去掉末尾的\n,如果有
  printf("[%s]\n",s); 

}

#3


设断点,看看到底读入了什么

#4


r = strcmp(a,b);

如果a和b一樣,r等於0;
如果a小於b,r小於0;(按英文字典順序)
如果a大於b,r大於0;(按英文字典順序)

#5


问题赵老师找出来了, 奇怪的是, 你的第二三个abcde之间应该有一空行。 为什么没有, VC6.0 让我很诧异。

#6


  strcmp(AAA,BBB)==0
strcmp 返回值有三个
1: 表示AAA>BBB
-1:表示AAA<BBB
0:  表示AAA=BBB

#7


char str[6]
应改为
char str[ 9]

#8


C语言密码比对问题,求高手指教,不胜感激。C语言密码比对问题,求高手指教,不胜感激。

#9


代码正确的。。。

#10


strcmp是等于是为0,不要粗心

#11


大于返回大于0的数,小于返回小于0的数