我正在通过重定向使用输入。我正在尝试将数字从字符串存储到整数。
第一个数字是 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 年读取后确实进入 else if ......但由于某种原因,strtol 仅存储“1”而不是存储“1989”。