C语言综合练习3:文本四则运算-创新互联
随机生成10个关于100以内整数的算术表达式,先写进文件中,然后再读取出来,进行计算,再把表达式写回去,代码如下:
成都创新互联公司专注于网站建设|成都网站维护公司|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都木包装箱等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身制作品质网站。#define _CRT_SECURE_NO_WARNINGS
#include#include#include#include#define FILE_PATH "a.txt"
FILE* open(char* str)
{FILE* fp = fopen(FILE_PATH, str);
if (NULL == fp)
{perror("open");
return -1;
}
return fp;
}
void get_data()
{srand(time(NULL));
int a;
int b;
int k;
char operation[] = {'+', '-', '*', '/' };
char buf[32];
FILE* fp = open("w");
for (int i = 0; i< 10; i++)
{a = rand() % 100 + 1;
b = rand() % 100 + 1;
k = rand() % 4;
sprintf(buf, "%d%c%d=\n", a, operation[k], b);
fputs(buf, fp);
}
fclose(fp);
}
char * compute(char *buf)
{int a;
int b;
char k;
int r;
sscanf(buf, "%d%c%d", &a, &k, &b);
switch (k)
{case '+':r = a + b; break;
case '-':r = a - b; break;
case '/':r = a / b; break;
case '*':r = a * b; break;
}
sprintf(buf, "%d%c%d=%d\n", a, k, b, r);
return buf;
}
void write_data()
{char buf[32*10];
int len = 0;
char * p = buf;
FILE* fp = open("r");
while (1)
{p = fgets(p, 32, fp);
if (NULL == p)
break;
p = compute(p);
p += strlen(p); //字符指针后移
}
fclose(fp);
//printf("%s", buf);
fp = open("w");
for (int i = 0; i< strlen(buf); i++) //逐个字符写入
{fputc(buf[i], fp);
}
fclose(fp);
}
int main() {get_data();
write_data();
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:C语言综合练习3:文本四则运算-创新互联
文章出自:http://myzitong.com/article/dgepjp.html