我尝试从C编程语言中显示的函数中打印出atoi
值,但是我发现以前的main格式无法打印出atoi
值。
以前,我以这种格式用C编写了htoi
,但是这次不起作用。代码如下所示:
#include <stdio.h>
#include <ctype.h>
#define MAXLINE 1000
int get_line(char line[], int maxline);
int atoi(char s[]);
int main(void)
{
int len;
char line[MAXLINE];
while ((len = get_line(line, MAXLINE)) > 0) {
atoi(line);
printf("%s", line);
}
return 0;
}
int get_line(char s[], int lim)
{
int c, i;
for (i = 0; i < lim-1 && (c=getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
int atoi(char s[])
{
int i, n, sign;
for (i = 0; isspace(s[i]); i++)
;
sign = (s[i] == '-') ? -1 : 1;
if (s[i] == '+' || s[i] == '-')
i++;
for (n = 0; isdigit(s[i]); i++)
n = 10 * n + (s[i] - '0');
return sign * n;
}
它复制用户的输入,而不是打印出atoi
转换的int值,这不是我想要的结果。
答案 0 :(得分:1)
您需要将atoi()
的结果分配给变量并打印。
while ((len = get_line(line, MAXLINE)) > 0) {
int num = atoi(line);
printf("%d\n", num);
}
答案 1 :(得分:1)
正如您在代码中编写的那样,atoi返回一个int。到那时,您有两种解决方案: 一种 。您将返回的值存储在变量中,然后进行打印。 B.您可以使用
打印而不存储它printf("%d",atoi(string));
注意:如果您不知道它的存在,则stdlib.h中已经有一个函数atoi()。