1.按有进位方式来写:
#include <stdio.h>
#include <string.h>
//手动创建text1,text2,编程创建text3,将text1和text2除了第一行和最后一行,其他行对应数字相加
//放在text3对应位置
int main(int argc, char **argv)
{
FILE *fp1, *fp2, *fp3; //指向文件的指针变量
char ch1, ch2, ch3;
fp1 = fopen("text1.txt", "r+");
fp2 = fopen("text2.txt", "r+");
fp3 = fopen("text3.txt", "w+");
int decade; //十位
int units; //个位
int num;
int sum;
char decade_c, units_c;
while((ch1 = fgetc(fp1)) != EOF && (ch2 = fgetc(fp2)) != EOF)
{
sum = 0;
if(ch1 <= '9' && ch1 >= '0')
{
while(ch1 <= '9' && ch1 >= '0')
{
num = ch1 - '0' + ch2 - '0';
sum = sum * 10 + num;
ch1 = fgetc(fp1);
ch2 = fgetc(fp2);
}
decade = sum / 10;
units = sum % 10;
decade_c = decade + '0';
units_c = units + '0';
fputc(decade_c, fp3);
fputc(units_c, fp3);
}
fputc(ch1, fp3);
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
2.按没有进位的方式来写
int main(int argc, char **argv)
{
FILE *fp1, *fp2, *fp3; //指向文件的指针变量
char ch1, ch2, ch3;
fp1 = fopen("text1.txt", "r+");
fp2 = fopen("text2.txt", "r+");
fp3 = fopen("text3.txt", "w+");
while((ch1 = fgetc(fp1)) != EOF && (ch2 = fgetc(fp2)) != EOF)
{
if(ch1 < '0' || ch1 > '9')
{
fputc(ch1, fp3);
}
else
{
ch1 = ch1 - '0';
ch2 = ch2 - '0';
ch3 = ch1 + ch2;
ch3 = ch3 + '0';
fputc(ch3, fp3);
}
}
return 0;
}