我编写了代码并用Turbo C编译了它。但它总是出现“Nonportable Pointer Conversion”错误。有什么想法吗?
#include "stdio.h", "conio.h"
void main(){
char gender;
clrscr();
printf("Please enter your gender (M/F): ");
scanf("&s", gender);
if(gender == "M"){
printf("Male");
} else if(gender == "F"){
printf("Female");
} else {
printf("Unknown");
}
getch();
}
PS:我想强迫用户输入一个字母(M / F),有谁知道怎么做?
答案 0 :(得分:3)
问题是 与
第1点:
if(gender == "M")
应该是
if(gender == 'M')
原因:"M"
代表字符串,'M'
代表char
。
第2点:
scanf("&s", gender);
应该是
scanf(" %c", &gender);
原因:需要使用scanf()
的正确签名。 %c
是扫描char
输入的格式说明符。您需要提供地址变量存储扫描值的位置。
第3点:
您可以使用
#include <stdio.h>
#include <conio.h>
.
. //so on
原因:如果您正在撰写C
计划,则必须遵循C
标准。 : - )
答案 1 :(得分:0)
并在上面添加解决方案,在双引号中声明头文件意味着查看本地目录虽然它可以工作,但按照惯例,你应该将std文件放在尖括号中。