C语言读入txt并计算

本人新手 ,txt 文本如下
3
6
add

我想计算出答案等于9,我想使用feget先看是加减乘除在进行运算,但输出的结果却不一样,想请问一下原因。我的代码如下

char line[64];
while (fgets(line, sizeof(line), fileHandle))
{
char *Last = strstr(line, "add");
if (NULL != Last){
fclose(fileHandle);
}
{
int i;
int sum=0;
int numberarray[10];
for(i=0;i<2;i++){
fscanf(fileHandle,"%d",&numberarray[i]);
}
for(i=0;i<2;i++){
sum = sum+(numberarray[i]);
}
printf("the sum %d",sum);
}

根据你提供的代码,你没有打开文件,如果加入打开文件的代码,是可以计算出和为9的,不过文件目录要写对,没有打开文件,或者文件目录错误,会导致执行后面的代码是直接计算数组未初始化里的数据,而不是文件里的数据,所以会导致结果异常,修改了一下,如下,供你参考:


#include <stdio.h>
#include <string.h>
int main(void){
    char line[64];
    FILE * fileHandle = fopen("F:\\20220215.txt","r"); 
    int flag = -1; 
    //printf("fileHandle=%d,fileHandle==NULL:%d\n",fileHandle,fileHandle==NULL);
//    char * s =fgets(line, sizeof(line), fileHandle);
//    printf("s=%s\n",s);
    while (fgets(line, sizeof(line), fileHandle)!=NULL)
    {
    //    printf("line=%s\n",line);
    //    char *Last = strstr(line, "add");
    //    printf("*Last=%s\n",Last);
            if(strcmp(line,"add")==0){ //如果为加法运算 
                flag = 0;  //flag为0位加法运算 
            }
        
        
    }    
    fclose(fileHandle);
    
    fileHandle = fopen("F:\\20220215.txt","r");     
    int i;
    int sum=0;
    int numberarray[10];
    
    for(i=0;i<2;i++){
        fscanf(fileHandle,"%d",&numberarray[i]);
    }
    
    if(flag==0){  //如果为加法运算
        for(i=0;i<2;i++){
    //    printf("numberarray[%d]=%d\n",i,numberarray[i]);
            sum = sum+(numberarray[i]);
        }
        printf("the sum %d",sum);
    }
    fclose(fileHandle);

}