翁子淳 2022-02-14 12:30 采纳率: 100%
浏览 46
已结题

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);
}

  • 写回答

1条回答 默认 最新

  • a5156520 2022-02-15 22:47
    关注

    根据你提供的代码,你没有打开文件,如果加入打开文件的代码,是可以计算出和为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);
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 2月14日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么