Euh j'ai énormement de mal à comprendre ton code.
Avec strtol, tu récupère donc number1 et l'opérande que tu stocke dans pEnd1.
Mais number2 n'est à aucun moment initialisé à une valeur. Il prend la valeur que lui donnera aléatoirement ta machine.
En gros tu additionnes number1, que tu as renseigné, à number2 non renseigné.
Mais le plus étrange est à venir. Tu récupères l'opérande et tu demandes à strtol de le convertir en long int? O_o
Ce que tu cherches à faire est plus compliqué que ce que tu ne penses.
Ce qu'il faut faire est récupéré la position dans ta chaîne de l'opérande(l'opérande c'est le symbole +, - etc) puis extraire la sous chaîne qui représente ton number2 en prenant comme point de départ la position de l'opérande et comme point d'arriver la fin de ta chaine (Il faudra écrire cette fonction d'extraction et ce n'est pas vraiment facile, tu peux t'inspirer de ce tuto : http://nicolasj.developpeppez.com/articles/libc/string/ en III]-c)
Une fois number2 contenu dans une chaîne de caractère, tu le convertis en int et tu l'ajoutes à number1.
Et ça c'est uniquement si tu considères faire des opérations simple.
Tu auras beaucoup plus de mal à développer une calculatrice qui effectue une opération plus complexe (avec gestion des priorités par exemple), il te faudra impérativement passer par l'élaboration d'un arbre d’exécution. Chose qui n'est pas évident à concevoir quand on débute.