看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
meconin:你可以不要用while啊, 不然就是在裡面判斷 strcmp/strncmp 08/19 20:42
firejox:0a... 08/19 20:55
firejox:while(!strcmp(fgets(str,100,stdin),"0a"))... 08/19 20:58
firejox:前面說用Ctrl+z/Ctrl+d則是 while(fgets(str,100,stdin)) 08/19 21:00