gpt4 book ai didi

c - Readline 从 C 中的控制台接受 int

转载 作者:行者123 更新时间:2023-12-02 02:27:57 24 4
gpt4 key购买 nike

我想让 readline 接受一个 int。实现这一目标的最佳方法是什么?我接受这样的字符串输入没有问题:

 char *usrname; // define user input

/* accept input */
printf("Enter new name:");
usrname = readline(NULL);

我确实明白,在接受输入之前,拥有一个 int 需要一些错误检查。

最佳答案

Eduardo Costa's answer有效,但它会泄漏内存。最好定义一个函数来为您处理这个问题:

int readint(char *p, char **e)
{
char *c = readline(p);
int i = strtol(c, e, 0);
if(e)
{
size_t o = (size_t)(*e - c),
l = strlen(*e) + 1;
*e = malloc(l);
// error checking omitted
memcpy(*e, c + o, l);
}
free(c);
return i;
}

此版本甚至会保留线路上的任何额外内容,以便您以后需要时可以使用它。当然,如果您需要对额外的东西做很多事情,您最好只阅读该行并自己解析它,而不是使用这样的函数。

关于c - Readline 从 C 中的控制台接受 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com