C语言指针读取文件内容比对

文本txt中的内容是我输入好的两个数字,但是就是显示错误。不管对错都是登录失败代码如下voiddenglu(){FILE*fp=NULL;charstr[100];cha... 文本txt中的内容是我输入好的两个数字,但是就是显示错误。 不管对错都是登录失败
代码如下
void denglu()
{
FILE *fp=NULL;
char str[100];
char n[100];
fp = fopen("E:\\secret.txt","r");
if (fp==NULL)
{
printf("open file failed\n\r");
return -1;
}

fgets(str,sizeof(str),fp);
fclose(fp);
printf("请输入您的帐号\n");
gets(n);
if (strcmp(n,str)==0)
{
printf("登陆成功! \n");
}
else
{
printf(“登录失败”);
}

}
这是记事本中保存的内容
展开
 我来答
忙碌小學生
2018-08-13 · TA获得超过229个赞
知道小有建树答主
回答量:156
采纳率:64%
帮助的人:52.3万
展开全部
  • 基本的,你的代码有语法错误 printf(“登录失败”);这里的符号不是英文符号

  • 文本中保存的是两个字符串(空格隔开),你是想让第一个作为帐号,第二个为密码吗

  • fgets你指定了大小100,而且没有那么多字符能读取,所以它把整个文件中的所有字符都读取了,包含空格,gets()也一样。

  • 所以你输入帐号加密码,中间用空格隔开才是正确的输入方式

  • 然后我试了你的代码,得到了正确的结果,文本中保存的123456 789//注意如果后面有回车换行也可能造成你的错误

更多追问追答
追问
能看看您的代码吗 谢谢啦  我给对着看看... 自学的
追答
我的代码就是复制你的,再改了你的语法错误,就是中英文符号那里的错误没有修改其他的
#include
#include
int main(void)
{
FILE *fp=NULL;
char str[100];
char n[100];
fp = fopen("secret.txt","r");
if (fp==NULL)
{
printf("open file failed\n\r");
return -1;
}
fgets(str,sizeof(str),fp);
fclose(fp);
printf("请输入您的帐号\n");
gets(n);
if (strcmp(n,str)==0)
{
printf("登陆成功! \n");
}
else
{
printf("登录失败");
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式