Trang 2 trên tổng số 2 Đầu tiênĐầu tiên 12
Từ 11 tới 14 trên tổng số 14 kết quả

Đề tài: Tệp trong C++??

  1. #11
    No Avatar
    Ga[K]on Khách

    Mặc định Tệp trong C++??

    Anh ơi, thế baitap.txt là 1 file mình phải tạo sẳn hay khi viết chương trình mình ghi vào là nó tự tạo???

  2. #12
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    open 1 directory không được support trong C++, cái này là very system-dependent. Cách duy nhất có thể dùng nó là dùng boost library. ( nhưng cậu phải install thư viện này thì mới xài được. Còn muốn ví dụ thì đây :
    C++ Code:
    1. #include "boost/filesystem/operations.hpp"
    2. #include "boost/filesystem/path.hpp"
    3. #include "boost/progress.hpp"
    4. #include <iostream>
    5.  
    6. namespace fs = boost::filesystem;
    7.  
    8. int main( int argc, char* argv[] )
    9. {
    10.   boost::progress_timer t( std::clog );
    11.  
    12.   fs::path full_path( fs::initial_path<fs::path>() );
    13.  
    14.   if ( argc > 1 )
    15.     full_path = fs::system_complete( fs::path( argv[1], fs::native ) );
    16.   else
    17.     std::cout << "\nusage:   simple_ls [path]" << std::endl;
    18.  
    19.   unsigned long file_count = 0;
    20.   unsigned long dir_count = 0;
    21.   unsigned long other_count = 0;
    22.   unsigned long err_count = 0;
    23.  
    24.   if ( !fs::exists( full_path ) )
    25.   {
    26.     std::cout << "\nNot found: " << full_path.native_file_string() << std::endl;
    27.     return 1;
    28.   }
    29.  
    30.   if ( fs::is_directory( full_path ) )
    31.   {
    32.     std::cout << "\nIn directory: "
    33.               << full_path.native_directory_string() << "\n\n";
    34.     fs::directory_iterator end_iter;
    35.     for ( fs::directory_iterator dir_itr( full_path );
    36.           dir_itr != end_iter;
    37.           ++dir_itr )
    38.     {
    39.       try
    40.       {
    41.         if ( fs::is_directory( dir_itr->status() ) )
    42.         {
    43.           ++dir_count;
    44.           std::cout << dir_itr->leaf() << " [directory]\n";
    45.         }
    46.         else if ( fs::is_regular( dir_itr->status() ) )
    47.         {
    48.           ++file_count;
    49.           std::cout << dir_itr->leaf() << "\n";
    50.         }
    51.         else
    52.         {
    53.           ++other_count;
    54.           std::cout << dir_itr->leaf() << " [other]\n";
    55.         }
    56.  
    57.       }
    58.       catch ( const std::exception & ex )
    59.       {
    60.         ++err_count;
    61.         std::cout << dir_itr->leaf() << " " << ex.what() << std::endl;
    62.       }
    63.     }
    64.     std::cout << "\n" << file_count << " files\n"
    65.               << dir_count << " directories\n"
    66.               << other_count << " others\n"
    67.               << err_count << " errors\n";
    68.   }
    69.   else // must be a file
    70.   {
    71.     std::cout << "\nFound: " << full_path.native_file_string() << "\n";    
    72.   }
    73.   return 0;
    74. }

    Nếu cậu muốn đọc chi tiết thì đây :
    Đã được chỉnh sửa lần cuối bởi rox_rook : 06-04-2008 lúc 12:35 PM.

  3. #13
    No Avatar
    Ga[K]on Khách

    Cái code đầu tiên em còn hiểu chút, sang code thứ 2 em chịu chết luôn:((

  4. #14
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Boost::library không đến nỗi quá khó nhưng đòi hỏi cậu phải biết chút đỉnh STL, và generic template metaprogramm. Nếu cậu mới thì khoang hãy làm cái này.
    - Nếu cậu dùng Window thì phải có thể add libs cho Visual 2008 C++ down boost về là chạy được, nếu không rõ thì hỏi tui sẽ giúp, chịu khó documentation 1 tí là ok.
    - Còn nếu cậu dùng bên Linux or Unix ( Fedora, Ubuntu...)
    Thì cậu install package này về , đây là version mới nhất :
    Code:
    apt-get install libboost.*-dev libboost-doc libboost.*1.34.1
    Dịch thì add thêm libs cho nó như sau :
    Code:
     g++ tên.cpp -o tên -Wall -O3 -ansi -pedantic -lboost_thread -lboost_filesystem

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