对循环体中的一些小语句不理解 c语言

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


x=x*10+ch-'0';
while(++n<19);
在这是什么意思

n表示循环的次数。即最大输入的数字范围为19位数字。

x=x*10+ch-'0';//每次将x*10再加上当前ch对应的数字
while(++n<19);//判断循环终止条件,n<19才继续循环。

这个代码是从字符串中将开头的数字字符代表的整数读取出来
当遇到非'0'-'9'字符时,转换结束。当数字超过19个时,转换结束,因为longlong型最大19位数字
比如输入2183abc
转换出来是整数2183
输入ab123
转换出来是0