Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Xử lý File,

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    0

    Mặc định Xử lý File,

    Project c++ của em có 3 file main.cpp , TDirectory.h và TDirectory.cpp .
    e, ko hiểu hàm display bị sai chổ nào nửa ,các bác coi dùm em.

    ĐÂY LÀ HÀM main
    PHP Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    #include "TDirectory.h"

     
    main() {

         
    bool rc;
         
    char filename[61];
         
    TDirectory directory;

         
    cout << "Telephone Directory" << endl;
         
    cout << "===================" << endl;

         
    cout << "Enter the name of the listings file : ";
         
    cin  >> filename;

         
    rc directory.loadFileData(filename);
         if (!
    rc)
             
    cout << "Unable to load file " << filename << endl;
         else {
             
    cout << "Surname        Given Name     Address        Phone          " << endl
             
    cout << "------------------------------------------------------------" << endl;
             
    directory.display();
             
    directory.close();
         }

         
     } 

    ĐAY LÀ HAM TDirectory.h
    PHP Code:
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    #define MAX_LENGTH 15

    struct Listing{
           private :
              
    char _given[MAX_LENGTH] ;
              
    char _surname[MAX_LENGTH];
              
    char _address[MAX_LENGTH];
              
    char _telephone[MAX_LENGTH];       
           
           public :
              
    bool loadFileData(FILEfp);
              const 
    chargiven() const;
              const 
    charsurname() const;
              const 
    charaddress() const;
              const 
    chartelephone() const;

    };
    struct TDirectory{
           private :
               
    Listing* list ;
               
    int countList ;
               
    int number(FILEfp) ; //count number of listing 
               
           
    public :
               
    bool loadFileData(const charfilename);
               
    void display() const;
               
    void close();

    }; 
    đây là hàm TDirectory.cpp
    PHP Code:
    #include <iostream>

    #include <stdio.h>
    #include "TDirectory.h"
    using namespace std;

     
    bool Listing::loadFileData(FILEfp){
          if(
    fscanf(fp,"%[^|]%[^|]%[^|]%[^\n]%*c",_given _surname,  _address_telephone) == 4)
             return 
    true ;
          
          else {
               
    _given[0] = '\0' ;
               
    _surname[0] = '\0' ;
               
    _address[0] = '\0';
               
    _telephone[0] = '\0' 
               return 
    false ;
          }
          
     }
     
     
     
     
     const 
    charListing::given() const{
           return 
    _given ;
     }
     const 
    charListing::surname() const{
           return 
    _surname ;
     }
     const 
    charListing::address() const{
           return 
    _address ;
     }
     const 
    charListing::telephone() const{
           return 
    _telephone ;
     }
     
     
    int TDirectory::number(FILEfp){
         
    char temp1[MAX_LENGTH],temp2[MAX_LENGTH],temp3[MAX_LENGTH],temp4[MAX_LENGTH];
         
    int dem ;
         
         while(
    fscanf(fp,"%[^|]%[^|]%[^|]%[^\n]%*c",temp1,temp2,temp3,temp4) == 4)
               
    dem++ ;
         return 
    dem ;
     }
      
      
     
    bool TDirectory::loadFileData(const charfilename){
           
    FILEfp ;
           list = 
    NULL ;
           
    countList ;
           
           
    fp fopen(filename,"r");
           
           if(
    fp == NULL) return false ;
           
                
    countList number(fp) ;
                
    rewind(fp);
                
                list = new 
    Listing[countList] ;
                
                
                for(
    int i 0;icountList;i++)
                        list[
    i].loadFileData(fp);
                
    fclose(fp);
                
                return 
    true   ;    
     }
     
     
    void TDirectory::display() const{
      
    int i;
      
    //  Left align
      
    cout.setf(ios::left);
      for (
    i=0;i<countList;i++)
      {     
        
        
    cout<<setw(15)<<list[i]._given();
        
    cout<<setw(15)<<list[i]._surname();
        
    cout<<setw(15)<<list[i]._address();
        
    cout<<setw(15)<<list[i]._telephone()<<endl;
      }
    }
     
     
    void TDirectory::close(){
           
    countList ;
           if(list != 
    NULLdelete [] list;
           list = 
    NULL ;
      
     } 

  2. #2
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Bài này quen quá Nếu không nhầm bạn cùng trường mình đó do .
    1- Bạn phải up cả File cần đọc lên (có phải File toronto.dat ko?)
    2- Bạn sai ở chỗ list[i]._given() ..vv.. Bỏ cai dấu (_) đi, chỗ này kiểu như nửa private nửa public --> Lỗi , bạn chỉ được phép in ra những phần tử kiểu public thôi, private là bất khả xâm phạm mà.
    3- Trong hàm "bool TDirectory::loadFileData(const char* filename)" sai ở "countList = number(fp)". Chỗ đấy phải viết 1 hàm duyết danh sách --> có bao dòng --> cấp phát Dynamic memory. Nếu làm như bạn thì countList = 0. Theo mình là như vậy, ko biết có đúng không? Mình mới xem qua thấy mấy chỗ thế thôi. Good Luck bro!!
    Đã được chỉnh sửa lần cuối bởi sontran1228 : 01-06-2008 lúc 03:49 PM.

Các đề tài tương tự

  1. Cách add file thư viện dll vào file exe để tạo một file chạy duy nhất C#
    Gửi bởi nthung2112 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 01-09-2012, 10:01 AM
  2. File backup .bak có dung lương lớn hơn file .mdb và file log
    Gửi bởi MYNAM trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 27-07-2012, 12:59 PM
  3. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  4. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  5. Trả lời: 17
    Bài viết cuối: 23-05-2011, 11:47 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn