手動創建兩個文本文件text1.txt和text2.txt,按要求創建text3.txt

實現在text1.txt和text2.txt文件中除去首行和末尾對應的數據,要求三個文本內容如下:

   text1                  text2                      text3begin                  begin                      begin10 11 12               15 16 17                   25 27 2920 21 22               25 26 27                   45 47 4930 31 32               35 36 37                   65 67 69end                    end                        end

這個程序需要用到fopen()函數,對text1和text2需要只讀”r+”,而text3需要創建并寫入”w+”,當檢測到text1中是數字時,就可以將text1和text2中的內容相加,在text1,text2和text3中分別定義一個char型,ch1,ch2,ch3,在賦值時要注意賦值語句是ch3=ch1+ch2-‘0’,因為ch1和ch2都是字符直接相加并不能得到相應的結果,要減去一個字符‘0’。
第一種用fgetc()和fputc()函數 具體源程序如下:

#include <stdio.h>
#include <string.h>  // 函數功能:打開文件
FILE* Fopen (const char *path, const char *mode)
{FILE* fp = fopen (path, mode);if (NULL == fp){perror ("fopen path");return;}return fp;
} int main()  
{  
// 不調用函數
/*************************************************************FILE *fp1= fopen("text1.txt", "r+");  if (text1 == NULL)  {  perror("fopen text1.txt");  return 0;  }  FILE *fp2 = fopen("text2.txt", "r+");  if (text2 == NULL)  {  perror("fopen text2.txt");  return 0;  }  FILE *fp3= fopen("text3.txt", "w+");  if (text3 == NULL)  {  perror("fopen text3.txt");  return 0;  }  
***********************************************************/FILE *fp1= Fopen ("text1.txt", "r+");FILE *fp2= Fopen ("text2.txt", "r+");FILE *fp3= Fopen ("text3.txt", "w+");char ch1;  char ch2;  char ch3; // 讀取分辨12中的數據,相加存入3while (1)  {  ch1 = fgetc(fp1);  if (ch1 == EOF)  {  break;  }  ch2 = fgetc(fp2);  if (ch2 == EOF)  {  break;  }  if (ch1 >= '0' && ch1 <= '9')       // 判 斷是否是數字{  ch3 = ch1 + ch2 - '0';  fputc(ch3,fp3);  }  else if(fputc(ch1, fp3) == EOF)     // 不是則直接寫入3中  {  perror("fputc");  break;  }   }  fclose(fp1);  fclose(fp2);  fclose(fp3);  return 0;  
} 

下面是不用fgetc()和fputc()函數的寫法 具體源程序如下:

#include <stdio.h>#define SIZE 10// 函數功能:打開文件
FILE* Fopen (const char *path, const char *mode)
{FILE* fp = fopen (path, mode);if (NULL == fp){perror ("fopen path");return;}return fp;
} int main()
{FILE *fp1 = Fopen ("text1.txt", "r+");FILE *fp2 = Fopen ("text2.txt", "r+");FILE *fp3 = Fopen ("text3.txt", "w+");int ret1;int ret2;char buf1[SIZE] = {0};char buf2[SIZE] = {0};// 讀取并分辨1和2中的數據,相加存入3中,結束標志為2中數據讀完while(ret1 = fread (buf1, sizeof(char), 1, fp1)){       ret2 = fread (buf2, sizeof(char), 1, fp2);// 退出循環條件:1或2讀完if(ret2 == 0 && !feof(fp2)){perror("fread");return -1;}if(ret1 == 0 && !feof(fp1)){perror("fread");return -1;}// 判斷是否是數字,是則進行運算,不是則直接導入3if(buf1[0] >= '0' && buf1[0] <= '9'){char tmp[1] = {0};tmp[0] = buf1[0] + buf2[0] - '0';fwrite(tmp, sizeof(char), 1, fp3);}else{fwrite(buf1,sizeof(char),1,fp3);}}close(fp1);close(fp2);close(fp3);return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448490.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

感情

團結 共患難的感情轉載于:https://www.cnblogs.com/yyjh/p/11139749.html

誰搶走了中國男人的老婆?

“老夫少妻”、“包二奶”、“洋媳婦”、“單身貴族”、“丁克家庭”都是當今最時髦的詞匯。這看似“你情我愿”的現象背后竟隱藏著巨大隱患! 目前中國男女比例是119&#xff1a;100&#xff0c;某些地區已達130&#xff1a;100;中國將有5百萬以上光棍&#xff0c;這對中國社會…

latex 幻燈片演示模板

http://zzg34b.w3.c361.com/templet/slide.htm轉載于:https://www.cnblogs.com/binterminator/articles/1621647.html

Linux 文件系統編程之系統調用和標準I/O庫

系統調用 訪問設備驅動程序的底層函數主要有&#xff1a; open:打開文件或者設備。 read:從打開的文件或者設備里面讀取數據。 write:向文件或者設備寫數據。 close:關閉文件或者設備。 open系統調用&#xff1a; #include <fcntl.h> #include <sys/types.h> #in…

mysql 索引:類型 、創建

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一個簡單的對比測試 以我去年測試的數據作為一個簡單示例&#xff0c;20多條數據源隨機生成200萬條數據&#xff0c;平均每條數據源都重…

水調歌頭·中秋

轉載于:https://www.cnblogs.com/divineka/archive/2004/09/04/39560.html

代碼面試最常用的10大算法

摘要&#xff1a;面試也是一門學問&#xff0c;在面試之前做好充分的準備則是成功的必須條件&#xff0c;而程序員在代碼面試時&#xff0c;常會遇到編寫算法的相關問題&#xff0c;比如排序、二叉樹遍歷等等。 在程序員的職業生涯中&#xff0c;算法亦算是一門基礎課程&#…

fork與vfork的區別

fork與vfork的區別 1.vfork保證子進程先運行&#xff0c;在它調用exec或exit之后父進程才可能被調度運行。如果在調用這兩個函數之前子進程依賴于父進程的進一步動作&#xff0c;則會導致死鎖。 2.fork要拷貝父進程的進程環境&#xff1b;而vfork則不需要完全拷貝父進程的進程…

IDEA 2018 集成 MyBatis Generator 插件 詳解、代碼生成

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、修改maven的pom文件 只需要將如下依賴添加到pom.xml文件中即可。&#xff08;注意此處是以plugin的方式&#xff0c;放在<plugins…

MongoDB監控及報警

轉載請注明出處&#xff1a;https://www.cnblogs.com/shining5/p/11142357.html MongoDB監控及報警 Prometheus是由SoundCloud開發的開源監控報警系統和時序列數據庫&#xff0c;其使用go語言開發。基本原理是通過HTTP協議周期性抓取被監控組件的狀態&#xff0c;任意組件只要提…

umask命令:設置文件的默認權限掩碼

今天接觸到了掩碼&#xff0c;從博客上總結了一些關于掩碼解釋比較全面的分析&#xff0c;和大家分享下。 文件權限是linux系統中的一種安全機制&#xff0c;通過設置不同的權限&#xff0c;可以達到限制用戶操作的目的&#xff0c;有效地保證了文件的完整性。 默認的情況下&…

如何學習開源項目及Ceph的淺析

摘要&#xff1a;開源技術的學習和采用確實存在著一定門檻&#xff0c;然而學習各種開源項目已經成為許多開發者不可回避的工作內容。那么&#xff0c;對于類似OpenStack的大型開源項目&#xff0c;開發者該如何著手&#xff0c;這里我們看章宇的分享。 【編者按】在 上一屆O…

Mybatis 中更新方法: updateByPrimaryKeySelective() 和 updateByPrimaryKey() 的區別

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 int updateByPrimaryKeySelective(TbItem record); int updateByPrimaryKey(TbItem record); 上面的是逆轉工程生成的Mapper接口 對應…

SHT知識庫操作要點

1.保存文檔庫模板&#xff1a; 知識庫---設置---文檔庫設置---權限管理---將文檔另存為模板2.設置版本號&#xff1a;知識庫---設置---文檔庫設置---常規設置---版本控制設置3.設置文檔庫權限&#xff1a;列表---設置---文檔庫設置---此文檔庫的權限&#xff08;用戶組讀取列表…

淺談三種特殊進程:孤兒進程,僵尸進程和守護進程

昨天學了進程控制&#xff0c;就這三種特殊的進程研究了一下&#xff0c;其中也借鑒了一些前人總計的經驗。 1、孤兒進程 如果父進程先退出,子進程還沒退出那么子進程將被 托孤給init進程,這里子進程的父進程就是init進程(1號進程).其實還是很好理解的。 // 父進程先子進程退…

設計師為什么要學編程,開發者為什么要學設計?

摘要&#xff1a;設計師和開發者目前正處于互聯網的兩端&#xff0c;看著彼此做不同的工作。如果他們能互相學習對方的技術&#xff0c;那么會協作得更好。 很多開發者認為&#xff0c;設計師應該學會如何編寫代碼&#xff0c;這一點是真的&#xff1a;通過學習&#xff0c;設計…

git 查看遠程倉庫地址

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 就一個命令&#xff1a; git remote -v 如下&#xff1a;

tensorflow之tf.train.exponential_decay()指數衰減法

exponential_decay(learning_rate, global_steps, decay_steps, decay_rate, staircaseFalse, nameNone) 使用方式&#xff1a; tf.tf.train.exponential_decay() 例子&#xff1a; tf.train.exponential_decay(self.config.e_lr, self.e_global_steps&#xff0c;self.config…

wait( )和 waitpid( )

進程一旦調用了wait&#xff0c;就立即阻塞自己&#xff0c;由wait自動分析是否當前進程的某個子進程已經退出&#xff0c;如果讓它找到了這樣一個已經變成僵尸的子進程&#xff0c;wait就會收集這個子進程的信息&#xff0c;并把它徹底銷毀后返回&#xff1b;如果沒有找到這樣…

享受閱讀的十二個好習慣

嚴謹的國際閱讀率比較研究顯示&#xff0c;當下韓國國民人均閱讀量約為每年11本&#xff0c;法國約為8.4本&#xff0c;日本在8.4—8.5本之間。全世界每年閱讀書籍數量排名第一的是猶太人&#xff0c;平均每人一年讀書64本。而中國13億人口&#xff0c;扣除教科書&#xff0c;平…