将ASCII代码转换为字符值

时间:2012-10-18 11:33:09

标签: c character ascii

我刚刚开始学习如何在C中编程,我正在尝试创建一个接受数字的程序,并将其用作ASCII值来返回与该值相关联的ASCII字符。

程序在预定义参数时有效,但是当我引入scanf函数时,它会编译,但不会给我相同的结果。

这是我的代码:

#include <stdio.h>

int main(void) 
{
    question2();
    return 0; 
}

int question2(void)
{


    int myInt = 65;

    scanf("%d", myInt);
    char ch = myInt;

    printf("%c",ch);

    return 0;
}

欢呼并感谢任何帮助人员。

1 个答案:

答案 0 :(得分:3)

您需要将myInt地址传递给scanf()(编译器应该发出警告):

scanf("%d", &myInt);

您还应该检查scanf()的返回值,以确保实际分配myIntscanf()返回分配的数量,在这种情况下预计为1

if (1 == scanf("%d", &myInt))
{
}

请注意,int的范围值大于char,因此您应检查myInt中存储的值是否适合 {{1} }}。标题char中定义了可用于检查的宏:

limits.h

编译器还应该针对if (1 == scanf("%d", &myInt)) { if (myInt >= CHAR_MIN && myInt <= CHAR_MAX) { printf("%c\n", (char) myInt); } else { printf("%d out-of-range: min=%d, max=%d\n", myInt, CHAR_MIN, CHAR_MAX); } } 发出隐式函数声明警告。要更正,请在question2()之前放置question2()的定义或question2()的声明。

相关问题