Re: [問題] 寫入至檔案串流

看板C_and_CPP (C/C++)作者 (坐領肝薪)時間14年前 (2011/08/19 20:30), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《atx236529 (坐領肝薪)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : gcc : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 問題(Question): : 不好意思,新手一問... : 今天卡在一個問題在於printf是將資料顯示(寫入)在命令提字元,而fprintf則是由檔案 : 寫入另一個檔案(?),在下今天想寫一個記帳的程式,就是想說用鍵盤輸入資料後寫入 : 文字檔中,照這樣的邏輯下,我是否要先寫入一個文字檔再複製過去?但這樣根本是多此 : 一舉吧??是我哪邊的觀念錯了,還望大哥們指點一下fprintf printf fscanf scanf的用法 : 差異,因為以前都是在命令題字元執行,現在接觸到輸入輸出就亂了套了... : 餵入的資料(Input): : 預期的正確結果(Expected Output): : 錯誤結果(Wrong Output): : 程式碼(Code):(請善用置底文網頁, 記得排版) : 補充說明(Supplement): 以下是小弟程式碼(寫到一半) FILE *fp1; int main() { int breakfast,lunch,dinner,others,sum; char filename[50],str[100]; printf("請輸入來源檔名:"); scanf("%s",filename); fp1=fopen(filename,"a+"); if(fp1 == NULL){ printf("error"); exit(1); } printf("讀取並寫入中...\n"); printf("日期:\n"); while((fgets(str,100,stdin))!='0a'){ fputs(str,fp1); } printf("breakfast:\n"); fclose(fp1); return 0; } 可是就如前面所說的會卡在如何在我按下ENTER或鍵盤輸入什麼才能停止寫入並跳出? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.161.91.50

08/19 20:42, , 1F
你可以不要用while啊, 不然就是在裡面判斷 strcmp/strncmp
08/19 20:42, 1F

08/19 20:55, , 2F
0a...
08/19 20:55, 2F

08/19 20:58, , 3F
while(!strcmp(fgets(str,100,stdin),"0a"))...
08/19 20:58, 3F

08/19 21:00, , 4F
前面說用Ctrl+z/Ctrl+d則是 while(fgets(str,100,stdin))
08/19 21:00, 4F
文章代碼(AID): #1EJbTdhz (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 2 之 4 篇):
文章代碼(AID): #1EJbTdhz (C_and_CPP)