Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在while循环中进行减法。C++;_C++_Linux_String_Strtok_Subtraction - Fatal编程技术网

C++ 在while循环中进行减法。C++;

C++ 在while循环中进行减法。C++;,c++,linux,string,strtok,subtraction,C++,Linux,String,Strtok,Subtraction,我有这个代码片段。我需要从字节流中减去数字(字节流已经被,标记) 问题是,当我做sub=sub-atoi(pchNew)时,它给出所有数字的和为负数。不幸的是,减法与加法和乘法不一样/不简单 我的问题是:如何在while循环中减去数字 else if(strcmp(pch, "sub")==0) { sub = 0; pch = strtok(NULL," "); pch = strtok(pch," "); //printf ("------->%s

我有这个代码片段。我需要从字节流中减去数字(字节流已经被
标记)

问题是,当我做
sub=sub-atoi(pchNew)
时,它给出所有数字的和为负数。不幸的是,减法与加法和乘法不一样/不简单

我的问题是:如何在while循环中减去数字

else if(strcmp(pch, "sub")==0)
{
    sub = 0;
    pch = strtok(NULL," ");

    pch = strtok(pch," ");
    //printf ("------->%s   :",pch);
    pchNew = strtok(pch, ",");
    do
    {
        sub = sub - atoi(pchNew);

        //write(STDOUT_FILENO,"IN LOOP\n",9);
        pchNew = strtok(NULL,",");

    } while(pchNew !=NULL);

    printf("The Subtraction is= %d\n", sub);
    fflush(stdout);
}
'更新:' 输入:

Client> sub 4,3,4,5
输出:

Server> The Subtraction is= -16
提前感谢,,
更安全

你想取第一个,然后从中减去下一个,对吗

else if(strcmp(pch, "sub")==0)
{
pch = strtok(NULL," ");

pch = strtok(pch," ");
//printf ("------->%s   :",pch);
pchNew = strtok(pch, ",");

sub = atoi(pchNew);
pchNew = strtok(NULL,",");

while(pchNew !=NULL)
{
sub = sub - atoi(pchNew);

//write(STDOUT_FILENO,"IN LOOP\n",9);
pchNew = strtok(NULL,",");

};

printf("The Subtraction is= %d\n", sub);
fflush(stdout);
}

你想加上负数,减去正数?如果是这样,那么减去每个数字的绝对值。老实说,我没有得到你的答案。。我有一组整数,我需要从下一个中减去一个。。等等,我不明白这个问题。你能展示一些输入和预期输出的例子吗?如果你需要a-b+c-d+e-f。。。你应该加减。或写入
sub=atoi(…)-sub如果您不关心符号。@CarlNorum更新了输入/输出。是的,完全正确。我所做的是:sub=atoi(pchNew)-sub;(这里没有管理标志!)而不是:sub=sub-atoi(pchNew);