python - 把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;
}
它可以工作,但唯一的问题是它只能接受字符串,而且我不知道如何获取要使用的变量。那么如何获得所需的数据类型呢?
解决方案
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;
}
推荐阅读
- android - Volley 网络并行请求
- python - Pip 命令使 Windows 10 崩溃
- c - 无符号转换 32 位
- rust - actix-web 处理程序中的 HTTP 请求 -> 一次执行多个执行程序:EnterError
- c# - 如何在后台代码运行 C# 时使我的 UI 不冻结
- asp.net-mvc - .Net Core MVC - 属性路由和使用自定义锚标记帮助器构建查询字符串
- javascript - 根据位置合并两个数组以使用 lodash 创建一个新数组
- python - Django Rest Framework:包含默认路由器时覆盖的其他 URL
- json - Open Json 返回 null 的问题
- r - stat_smooth(method = 'lm') 不显示