看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《lalaboom (lalaboom)》之銘言: : 大家好 : 小弟是剛學C的新手, : 在XP底下用DEV-C++ 做練習, : 1.想要寫一支程式產生多個資料輸出到.txt ex: 25,123,2,35... : 做法是用 data = rand() 產生資料 : 再用fprintf(fp,"%d,",data); //這邊看書上好像不只fprintf可以用, : 想請問有什麼優缺點嗎? : Q: 這邊我想只產生0~255的資料,想說看之後可以只用一個byte的陣列去裝, : 那rand()我該如何寫呢,還是有什麼好辦法^^? char datas[大小]; for (i = 0; i < 大小; i++) datas[i] = rand() % 256; : 2.就是讀剛剛輸出的檔案了,我是用fscanf()來讀檔案,這邊也有很多選擇可用, : 看書上是寫說一個字元一個字元讀,或是讀成字串,想請問一下有什麼差別呢? 同樣是檔案的讀寫,許多語言通常都會提供許多種方式 這其實沒有對錯,會影響到的只有 1.程式好不好寫 2.效能好不好 新手可以先不要理會效能問題,把程式寫出來的方法就是好方法 : 接下來我就不知道怎麼做了XD,如何能把逗點去掉,裝到陣列裡面,網路上google : 了一下是說要使用atoi(),只是不管我怎麼寫compile都過不去,不然就是程式 : 直接關閉...冏 假設 testf 的內容是「25,123,2,35,1」 以下的程式可以把 testf 的每個數字逐一讀出來 並且一個數字一行的印在螢幕上 你可以參考後,改成你想做的處理 #include <stdio.h> int main() { FILE *fp = fopen("testf", "r"); int num; while (1) { fscanf(fp, "%d,", &num); if (feof(fp)) break; printf("%d\n", num); } } compile過不去,請仔細看它的錯誤訊息 程式直接關閉的話比較麻煩,只能仔細找到出錯的那一行並修正 以這個例子來說,如果不用fscanf的話 可以改用fgets先讀進整行的資料,加上strtok切割,再atoi轉成整數 效能要分析過才知道,但程式寫起來就麻煩了些 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.184.77 ※ 編輯: james732 來自: 114.35.184.77 (11/19 15:04)
firejox:sscanf在哭泣....XD 11/19 15:35
Dannvix:char 放 0~255 的話要記得 unsigned 唷~ 11/19 20:47
funnymean:題外話 data本身就是複數唷 不用加s 11/20 15:44
xatier:一樓XD 11/22 00:26
ericinttu:推一下三樓的英文單字教學 11/22 06:07