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