文件中放表达式,读取进行计算
P321.C
在文本文件Comp.txt里有需要计算结果的整数算式,每个算式占一行且文件中有多个(数量不确定)算式,运算类型只有“加法(+)”或者“减法(-)”且运算符前后至少有一个空格。计算这些算式的结果并在屏幕上显示。
#include<stdio.h>
int main(void)
{
int a, b, n = 1;
char c;
FILE *fp;
fp = fopen("Comp.txt", "r");
if (fp == NULL)
{
printf("error!\n");
return 0;
}
while ( !feof(fp) ) //文件结束,返回非0值;文件未结束,返回0值
{
if (fscanf(fp, "%d %c %d", &a, &c, &b) == 3){
if (c == '+')
printf("Line %03d: %5d + %-5d = %-6d\n", n, a, b, a + b);
else
printf("Line %03d: %5d - %-5d = %-6d\n", n, a, b, a - b);
n++;
}
}
fclose(fp);
return 0;
}
P323.C
在文本文件Comp.txt里有需要计算结果的整数算式,每个算式占一行且文件中只有一个算式,运算类型只有“加法(+)”、“减法(-)”、“乘法(*)”且运算符前后至少有一个空格。计算该算式的结果并在屏幕上显示。
#include<stdio.h>
int f1(int n1, int n2, char ch);
int main(){
FILE *fp;
int a1, a2, a3, result;
char ch1, ch2;
fp = fopen("Comp.txt", "r");
if (fp == NULL){
printf("error\n");
return 0;
}
fscanf(fp, "%d %c %d %c %d", &a1, &ch1, &a2, &ch2, &a3);
if (ch2 == '*')
result = f1(a1, f1(a2, a3, ch2), ch1);
else
result = f1(f1(a1, a2, ch1), a3, ch2);
printf("%d %c %d %c %d = %d\n", a1, ch1, a2, ch2, a3, result);
fclose(fp);
return 0;
}
int f1(int n1, int n2, char ch){
int sum;
if (ch == '+')
sum = n1 + n2;
else if (ch == '-')
sum = n1 - n2;
else
sum = n1 * n2;
return sum;
}
P324.C
在文本文件Comp.txt、CompA.txt、CompB.txt里有需要计算结果的整数算式,文件Comp.txt提供参加运算的第一个数,文件CompA.txt提供进行运算的运算符(只有“加法(+)”或者“减法(-)”),文件CompB.txt提供参加运算的第二个数,每个数或运算符均占一行,组合起来成为一个算式,**遇到无法组成一个完整算式时即结束运算。**这样的算式有多个(数量不确定)。计算这些算式的结果并在屏幕上显示。
#include<stdio.h>
int main(void)
{
int a1, a2, n = 1;
char ch;
FILE *fp1, *fp2, *fp3;
fp1 = fopen("Comp.txt", "r");
fp2 = fopen("CompA.txt", "r");
fp3 = fopen("CompB.txt", "r");
if (fp1 == NULL || fp2 == NULL || fp3 == NULL){
printf("error\n");
return 0;
}
while (1){
if ((fscanf(fp1, "%d", &a1) == 1) && (fscanf(fp2, "%c\n", &ch) == 1)&&(fscanf(fp3, "%d", &a2) == 1)){
if (ch == '+')
printf("Line %03d: %5d %c %-5d = %-6d\n", n, a1, ch, a2, a1 + a2);
else
printf("Line %03d: %5d %c %-5d = %-6d\n", n, a1, ch, a2, a1 - a2);
n++;
else break;
}
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
P325.C
在文本文件Comp.txt、CompA.txt、CompB.txt里有需要计算结果的整数算式,文件Comp.txt提供参加运算的第一个数,文件CompA.txt提供进行运算的运算符(只有“加法(+)”或者“减法(-)”),文件CompB.txt提供参加运算的第二个数,每个数或运算符均占一行,组合起来成为一个算式,遇到无法组成一个完整算式时即结束运算。这样的算式有多个(数量不确定)。计算这些算式的结果并将结果以文本文件格式保存到程序P325.C所在的文件夹中且文件名命名为CompC.txt。
int main(void)
{
int a1, a2, nn = 1;
char op;
FILE *fp1, *fp2, *fp3, *fp4;
fp1 = fopen("d:\\Comp.txt", "r");
fp2 = fopen("d:\\CompA.txt", "r");
fp3 = fopen("d:\\CompB.txt", "r");
fp4 = fopen("d:\\CompC.txt", "w"); //新建一个文件
if (fp1 == NULL || fp2 == NULL || fp3 == NULL || fp4 == NULL)
return 0;
while (1)
{
if (fscanf(fp1, "%d", &a1) == 1 && fscanf(fp2, "%c%*c", &op) == 1 && fscanf(fp3, "%d", &a2) == 1){
if (op == '+')
fprintf(fp4, "Line %03d: %5d %c %-5d = %-6d\n", nn, a1, op, a2, a1 + a2);
else
fprintf(fp4, "Line %03d: %5d %c %-5d = %-6d\n", nn, a1, op, a2, a1 - a2);
nn++;
}
else break;
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
return 0;
}
编写一程序P314.C实现以下功能
有一存储很多商品数据(每件商品的属性先后包括:品名、规格、单价(有小数位)、数量,数据的最长长度分别为20、10、6、5,在文件中以空格为分隔,每个商品的数据占一行)的文本文件,从键盘输入某种商品的品名,要求在文件中查找有无相应品名商品(可能有多条记录或没有),若有则在屏幕上显示出相应的商品的品名、规格、数量、单价(显示时,品名、规格、数量、单价之间使用逗号(,)作分隔,单价显示时只显示2位小数),若无则显示没有相应品名的商品。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* 定义商品的结构体类型 */
struct sp
{
char pinming[21];
char guige[11];
float danjia;
int shuliang;
};
int main(void)
{
int flag = 0;
char mingch[21];
struct sp shangpin;
FILE *fp;
printf("Please input shang pin pin ming:");
scanf("%s", mingch); //输入要查询的商品名
printf("\n");
printf("cha zhao qing kuang:\n");
fp = fopen("sp.txt", "r");
if (fp == NULL) return 0;
while(fscanf(fp, "%s %s %f %d", shangpin.pinming, shangpin.guige, &shangpin.danjia, &shangpin.shuliang) == 4) {
if (strcmp(shangpin.pinming, mingch) == 0) {
printf("%s,%s,%d,%.2f\n", shangpin.pinming, shangpin.guige, shangpin.shuliang, shangpin.danjia);
flag = 1;
}
}
if (flag == 0) printf("mei you shang pin %s\n", mingch);
fclose(fp);
return 0;
}
上一篇: 国产机器人还要加把油
下一篇: 怎么腌腊肉,小编来告诉你
推荐阅读
-
基于android中读取assets目录下a.txt文件并进行解析的深入分析
-
基于android中读取assets目录下a.txt文件并进行解析的深入分析
-
php对文件夹进行相关操作(遍历、计算大小)
-
使用Numpy读取CSV文件,并进行行列删除的操作方法
-
python读取txt文件,去掉空格计算每行长度的方法
-
C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换(第二版-增加深度读取和更新功能)
-
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
-
java读取txt文件,对字符串进行操作后导出txt文件
-
在Python程序中进行文件读取和写入操作的教程
-
在python中利用pandas和正则表达式读取文件