strtol c字符串函数

时间:2013-09-20 06:46:04

标签: c string io-redirection strtol

我正在通过重定向使用输入。我正在尝试将字符串中的数字存储为整数。

第一个数字是1989年...但是只存储了“1”。我使用strtol错了吗?

table是一个结构数组

value是一个整数数组。

//(*row, i, j) = 0

while((c = fgetc(stdin)) != EOF)
{
    if (c != ' ' && c != '\n')
    {
        str[i] = c;
        i++;
    }

    else if (c == ' ')
    {
        str[i] = '\0';
        i = 0;
        table[*row].value[j] = strtol(str, NULL, strlen(str));

这段代码有效,如果在1989年读完之后它会进入其他...但由于某种原因,strtol只存储'1'而不是存储'1989'。

1 个答案:

答案 0 :(得分:2)

是的,你错了。最后一个参数是要解析的数字的 base 。对于应为10的正常十进制数。参见例如this reference