关于strcmp

墓后煮屎人 2011-01-24 03:30:45
void FileRead(char *chUser)
{
FILE *fp;
char szUser[12]; memset(szUser,'\0',12);
if ((fp=fopen("User.txt","rt"))!=NULL)//文件里就是“sjh86126”
{
fscanf(fp,"%s",szUser);
nlen1=strcmp(chUser,szUser);
printf("%d",nlen1); fclose(fp);
}
}

void inputUser()
{
char chUser[12]; memset(chUser,'\0',12);
for (int i=0; i<12;i++)
{
chUser[i]=getch();//输入“sjh86126”
fflush(stdin);
putch(chUser[i]);
}
FileRead(chUser);
}

我输入sjh86126,为何nlen1等于1而不是0,明明是相等的啊。。。
...全文
89 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
proghua 2011-01-24
  • 打赏
  • 举报
回复
for (int i=0; i<12;i++)
{
chUser[i]=getch();//输入“sjh86126”
fflush(stdin);
putch(chUser[i]);
}

LZ把12改成8试试,输入的字符串长度其实是8
CJBAAA 2011-01-24
  • 打赏
  • 举报
回复
我估计你的chUser="sjh86126\n"而你的szUser="sjh86126"应该是这样吧。这两个字符串比较应该不会相等吧
proghua 2011-01-24
  • 打赏
  • 举报
回复
我用getch怎么执行时出现段错误
MYMGrub 2011-01-24
  • 打赏
  • 举报
回复
检讨下...sizeof(chUser)好像不对...
bluesky12312388 2011-01-24
  • 打赏
  • 举报
回复
个建议使用strncmp(chUser,szUser,8);在看看结果,问题可能出在getch上

MYMGrub 2011-01-24
  • 打赏
  • 举报
回复
nlen1=strcmp(chUser,szUser);
换成nlen1=strncmp(chUser,szUser, sizeof(chUser));呢?
bdmh 2011-01-24
  • 打赏
  • 举报
回复
你看一下你的szUser读取后具体的内容是什么,和可能有一些符号值,比如空格回车等
justkk 2011-01-24
  • 打赏
  • 举报
回复
把两个串显示一下

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧