不可移植指针转换
Nonportable Pointer Conversion
我编写代码并用 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),有人知道怎么做吗?
问题是是和
第 1 点:
if(gender == "M")
应该是
if(gender == 'M')
原因:"M"
代表一个字符串,'M'
代表一个char
.
第 2 点:
scanf("&s", gender);
应该是
scanf(" %c", &gender);
原因:需要使用 scanf()
的正确签名。 %c
是用于扫描 char
输入的格式说明符。您需要提供 变量的地址以存储扫描值。
第 3 点:
你必须使用 like
#include <stdio.h>
#include <conio.h>
.
. //so on
原因:如果您正在编写 C
程序,则必须遵循 C
标准。 :-)
并添加到上述解决方案中,在双引号中声明头文件意味着查看本地目录,尽管它可以工作,但按照惯例,您应该将 std 文件放在 angular 括号中。
我编写代码并用 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),有人知道怎么做吗?
问题是是和
第 1 点:
if(gender == "M")
应该是
if(gender == 'M')
原因:"M"
代表一个字符串,'M'
代表一个char
.
第 2 点:
scanf("&s", gender);
应该是
scanf(" %c", &gender);
原因:需要使用 scanf()
的正确签名。 %c
是用于扫描 char
输入的格式说明符。您需要提供 变量的地址以存储扫描值。
第 3 点:
你必须使用 like
#include <stdio.h>
#include <conio.h>
.
. //so on
原因:如果您正在编写 C
程序,则必须遵循 C
标准。 :-)
并添加到上述解决方案中,在双引号中声明头文件意味着查看本地目录,尽管它可以工作,但按照惯例,您应该将 std 文件放在 angular 括号中。