全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1279
推到 Plurk!
推到 Facebook!

請問怎麼從txt檔裡面抓出txt檔的值出來

尚未結案
cdhjs
一般會員


發表:4
回覆:4
積分:1
註冊:2005-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-09 21:24:48 IP:61.224.xxx.xxx 未訂閱
    // 數2.cpp : Defines the entry point for the console application.
//
#include
#include  
#include
void open();//宣告程式
void fore();    int main()//主程式
{
        open();
        int answer;
                while(1){
                system("cls");
        cout<<"1.加入新資料:\n";
        cout<<"2.刪除資料:\n";
        cout<<"3.列印資料:\n";
                cout<<"4.計算次數分配表、繪製直方圖:\n";
                cout<<"5.計算平均數、中位數、眾數:\n";
                cout<<"6.計算全距、標準差、變異係數:\n";
        cout<<"7.結束:\n";
        cout<<"請輸入選擇功能:";
        cin>>answer;
        if(answer<=7){
                switch(answer)
                {
                case 1:
                        
                        break;
                case 2:
                        break;
                case 3:
                        break;
                case 4:
                        fore();
                        break;
                case 5:
                        break;
                case 6:
                        break;
                case 7:
                        break;
                }    }
                }
}    void open() { //開檔副程式
        FILE *fptr; 
        char ch; 
        int count=0;
        fptr= fopen("hw1.txt","r"); // 開檔  
        if (fptr != NULL){ 
                while ((ch= getc(fptr)) != EOF){ //判斷是否到達檔尾  
                        cout<    上面是我的程式(跟前一篇發表的用鏈結來寫的不一樣)
我現在的問題是
想要新增刪除跟列印
可是我卻不知道怎麼從txt檔裡面抓出txt檔的值出來
我在想應該會用到很多開檔
所以我也把開檔寫成了副程式
void open() { //開檔副程式
        FILE *fptr; 
        char ch; 
        int count=0;
        fptr= fopen("hw1.txt","r"); // 開檔  
        if (fptr != NULL){ 
                while ((ch= getc(fptr)) != EOF){ //判斷是否到達檔尾  
                        cout<
不知道我這個想法是不是對的??    另外
我如果要寫副程式的話
以上面的功能來說
是否每個都要一開頭就抓個開檔的副程式才能算出正確答案勒??
請大大指教一下    ps因為鏈結真的好難!所以才想用比較簡單的方式來寫    
        
ubong
一般會員


發表:2
回覆:42
積分:23
註冊:2002-10-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-12 22:57:37 IP:218.163.xxx.xxx 未訂閱
如果你所要開啟的檔案是確定已經存在的,那麼你可在程式一開始就開啟檔案, 視你的檔案是否惟讀或增刪而加入設定: FILE *testf; testf=fopen("test.txt","r");//檔案已存在且只讀取,如非純文字檔則用"rb" testf=fopen("test.txt","w ");//開啟新檔並可隨時新增資料 testf=fopen("test.txt","r ");//開啟一已存在的檔案,並可變更資料 在開啟檔案後再由程式隨時要讀取內容,每次讀取時可先將檔案移到檔頭: rewind(testf); 讀取.txt的檔案,如果每一行內容長度非固定,建議你設個檔案位置變數來記錄 下一筆位置,這是我常用的方式供你參考,設一變數記下檔案長度,在檔案位置 等於或大於檔案長度時結束讀檔: int pos,flength; char str[81]; pos=0; fseek(testf,0,2);//設定檔案位置在檔尾 flength=ftell(testf); rewind(testf); for(;;) { //設定讀檔迴圈 if(pos>=flength) break; //檔案位置等於或大於檔案總長度,結束讀檔 fgets(str,80,testf); pos =strlen(str) 1;//下一行位置,str 長度加上換行字元1 // 然後加上你處理str字串的程式碼 } 檔案已確定要讀取,開啟一次後隨時可做讀取動作,不必一再的開啟關閉,如果 有寫入動作,可適時加入fflush(testf)將檔案確時寫進磁碟,避免當機時資料 流失就可。 以上就你有關檔案讀寫問題,提供一些經驗,希望對你助益。 ubong
------
ubong
系統時間:2024-05-19 3:34:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!