本人新手 ,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);
}