帮忙看下这段小代码的一行是什么意思?谢谢了。
题目要求是:请编写程序,将输入中的制表位替换成数目适当的空格,使空格充满到下一个制表位结束的地方
#include<stdio.h>
#define TABINC 8
int main()
{
int c,nb,pos;
nb=0;
pos=1;
while((c=getchar())!=EOF)
{
if(c=='\t')
{
nb=TABINC-(pos-1)%TABINC; ///-----这一行//
while(nb>0){
putchar(' ');
++pos;
--nb;
}
}else if(c=='\n'){
putchar(c);
pos=1;
}else {
putchar(c);
++pos;
}
}
return 0;
}
这一段代码是《c程序设计语言》(第二版)第一章最后的练习里面的代码
解答:假设每隔TABINC个位置就会出现一个制表位,在这里定义为8
变量pos是程序在文本行中的当前位置
当遇到制表符,程序将计算出,到达下一个制表位需要的空格数,这一数值是
nb=TABINC-(pos-1)%TABINC;
这是怎么计算的