【发布时间】:2014-11-11 21:58:51
【问题描述】:
对于我的作业,我们应该编写一个校验和,它会继续显示校验和,直到检测到回车(按下 Enter 键)。我的校验和工作正常,并继续提示我输入一个字符串以将其转换为校验和,但我的程序应该在我按下回车键后结束。在我的代码中,我设置了一个持续计算校验和的 while 循环。我特别提出:
while(gets(s) != "\r\n")
用户必须输入的字符串中的位置。我也用 scanf 试过这个,我的循环看起来像:
while(scanf("%s",s) != '\n')
这也没有奏效。谁能给我一些关于如何让它工作的见解?谢谢
【问题讨论】:
-
您不能将 C 字符串与赋值运算符 '=' 进行比较。
-
答案是正确的,您需要类似 strcmp 的东西,但是 gets 和 scanf %s 不返回换行符,因此比较仍然会失败。改为检查空字符串
-
永远不要使用
gets。将其替换为fgets。gets是一个非常危险的功能,已被弃用。此外,fgets将返回换行符,而gets会剥离它。