我正在写一个密码检查程序。我遇到了一个问题。 当我运行程序时,所有内容都以纯文本形式打印出来,而不是允许用户输入。我还尝试运行之前有效的其他程序,但它们都有同样的问题。这是我的代码和问题的图像:
#include <stdio.h>
main()
{
int password, pass2;
char name;
printf("\nInput your name: ");
scanf("%c", &name);
printf("\nEnter your password(must be a number): ");
scanf("%d, &password");
printf("\nRe-enter your password(must be a number): ");
scanf("%d, &pass2");
if("password == pass2")
{
printf("welcome %c", name);
}
else{
printf("sorry your passwords did not match!");
}
getch();
}
答案 0 :(得分:3)
你犯了一些错误,
scanf("%d, &password");
调用 scanf 的正确方法如下。
scanf ( const char * format, ... );
这行中用C编码的正确方法是。
scanf("%d", &password);
第15行也有错误。
if("password == pass2")
比较数字的正确方法是
if(password == pass2)
字符问题。
您正在声明一个字母,在C中是一个单个字符。
在阅读字符串时,您应该声明一个char数组,并且要读取/写入它,您应该使用%s 。
这种方法也有问题,像“firstname lastname”这样的词语不起作用,但我会把它作为你的工作。
学习时出现一些错误,你可以在
中查看一些帮助对于更“引导”的方法,您也可以查看
http://c.learncodethehardway.org/book/
这是“正确的”最终代码。 (它仍然需要一些改进,但会按预期运行。)
#include <stdio.h>
int main() {
int password, pass2;
char name[20];
printf("\nInput your name: ");
scanf("%s", name);
printf("\nEnter your password(must be a number): ");
scanf("%d", &password);
printf("\nRe-enter your password(must be a number): ");
scanf("%d", &pass2);
if(password == pass2)
{
printf("welcome %s", name);
}
else{
printf("sorry your passwords did not match!");
}
}