#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main(){
const char* a = 0;
const char* b = "Georgi";
printf("Hello, write your name!\n");
scanf_s("%s", &a);
if (a = b){
printf("\nHi,",b ,", its nice to see you my friend.");
}
else{
printf("\nHello, its nice to meet you. My name is Supa-Dupa Computer!");
}
getchar();
return 0;
}
所以我试图让程序在插入特定名称后返回意义。 第一次它起作用了,但是当我输入“Georgi”时,它给我打印了“else”的感觉。现在,当我只输入一个符号时,程序就会退出。我哪里出错了有什么建议吗?
最佳答案
首先,a = b
不会将a
与b
进行比较,它会赋值。你想要 ==
。
其次,==
仍然不正确,因为您正在比较 char*
,它们只是指针。你想要 strcmp(a,b)
。
最后,当您scanf_s
进入它时,a
没有被初始化。先分配内存,或者直接使用std::string
。
请注意,如果这实际上是您标签中的 C++,您应该使用 cin
和 cout
而不是 printf
和 扫描
关于c++ - 无法返回正确的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213889/