首页 > 解决方案 > 把Python的输入函数变成C

问题描述

<cs50.h>在我用于程序构建的沙箱中调用了这个库。它具有获取特定数据类型的输入函数,格式为get_(data type).

所以我尝试get_int()在 Python 中试验一个函数:

def get_int(text):
    result = int(input(text))
    return result

它有效!于是我尝试用C写来试验Python的输入功能:

#include <stdio.h>
#include <cs50.h>

char *input(char *text);

int main() {
    char *name = input("What's your name? ");
    printf("Hello, %s.\n", name);
}

char *input(char *text) {
    printf("%s", text);
    char *result = get_string("");
    return result;
}

它可以工作,但唯一的问题是它只能接受字符串,而且我不知道如何获取要使用的变量。那么如何获得所需的数据类型呢?

标签: pythoncinputcs50

解决方案


C 中将字符串转换为整数的等效函数是atoi(),来自stdlib.h

#include <stdlib.h>

int get_int(char *text);

...

int get_int(char *text) {
    char *input_str = input(text);
    return atoi(input_str);
}

也就是说,当您可以只使用scanf()from时,为什么要麻烦,stdio.h它对于输入和printf()输出一样灵活,并且比input()一般 python 更灵活?

#include <stdio.h>

int get_int(char *text);

...

int get_int(char *text) {
    printf("%s", text);
    int result;
    scanf("%d", &result);
    return result;
}

推荐阅读