C語言實現-讀取檔案的四則運算並計算
阿新 • • 發佈:2020-11-02
//檔案版的四則運算 #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; }