1. 程式人生 > 實用技巧 >C語言實現-讀取檔案的四則運算並計算

C語言實現-讀取檔案的四則運算並計算

//檔案版的四則運算
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//進行檔案四則運算的寫入
void write_file()
{
    FILE* fp = NULL;
    fp = fopen("D:/C_sum/test.txt", "w");
    fputs("10/2=\n", fp);
    fputs("4-1=\n", fp);
    fputs("4*2=\n", fp);
    fputs("4+3=\n
", fp); fclose(fp); } //利用switch語句求出四則運算的和 int Get_sum(int num1,char ch,int num2) { int sum = 0; switch(ch) { case '+': sum = num1 + num2; return sum; break; case '-': sum = num1 - num2; return sum; break; case '*': sum
= num1 * num2; return sum; break; case '/': sum = num1 / num2; return sum; break; } } //開始拼接字串然後匯入檔案 void read_file(char str1[],char result[]) { FILE* fp = NULL; int sum; int num1, num2; char ch; fp = fopen("D:/C_sum/test.txt", "r");
if (fp == NULL) { perror("OPEN file error:"); return; } while (1) { char temp[4096]; fgets(str1,4096, fp); //讀取一行字串到str1中 if (feof(fp)) break; sscanf(str1, "%d%c%d=\n", &num1, &ch, &num2);//利用sscanf()函式來按格式讀取想要的資料 sum = Get_sum(num1,ch,num2); //呼叫求和函式來求出表示式的和 sprintf(temp, "%d%c%d=%d\n", num1, ch, num2,sum);//利用Sprintf函式來格式化得到想要的字串 strcat(result, temp); //利用strcat函式來拼接字串 } puts(result); fclose(fp); fp = fopen("D:/C_sum/test_sum.txt", "w");//最後開啟檔案來填寫 fputs(result, fp); fclose(fp); } int main() { char result[4096] = { 0 }; char str1[4096] = { 0 }; read_file(str1,result); //write_file(); return 0; }