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

Đề tài: sắp xếp (file )

  1. #1
    No Avatar
    [VTS] Khách

    Question sắp xếp (file )

    em có một bài tập về file cấu trúc . Các phần khác em làm được rồi nhưng đến phần sắp xếp thì có vấn đề . Ai rành về phần này giúp em với code của em ở phần dưới chỉ đưa lên phần nhập vào thôi (ý của em là có 1 file như thế thì muốn sắp xếp thế nào) em định là đưa lên mảng rồi sắp xếp trên đó sau rồi ghi lại vào file nhưng ko hiểu sao toàn báo lỗi :
    Code:
    #include<iostream.h>
    #include<string.h>
    #include<conio.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<iomanip.h>
    struct sinhvien
    {
       int msv;
       char ht[20],xl[10];
       float diem1,diem2,diem3,dtb;
       
    }sv;
       void nhap();
       void xem();
       void tinh();
       void sua();
       void sapxep();
       void xemrieng();
    //------------------------------
    void nhap()
    {
     FILE *f;
     clrscr();
     int i=1;
     char ten[10];
     cout<<"nhap ten tep can tao: "; gets(ten);
     f=fopen(ten,"wb");
     cout<<"Nhap danh sach sinh vien "<<endl;
      while(1)
       {
       cout<<"Sinh vien thu "<<i<<": ";
       fflush(stdin);
       cout<<endl<<"Ho ten : ";gets(sv.ht);
        if((strlen(sv.ht))==0)
        {
         cout<<"Da nhap xong ! ";getch();  break;
        }
        cout<<"Ma sv : "; cin>>sv.msv;
        cout<<"Diem 1 : ";cin>>sv.diem1;
        cout<<"Diem 2 : ";cin>>sv.diem2;
        cout<<"Diem 3 : ";cin>>sv.diem3;
        fwrite(&sv,sizeof(sinhvien),1,f);
        i++;
       }
       fclose(f);
    }
    void menu()
    {
     char c;
      while(c!='7')
      {
       clrscr();
       cout<<"     menu";
       cout<<endl<<"1.Nhap danh sach";
       cout<<endl<<"2.Xem danh sach";
       cout<<endl<<"3.Tinh diem";
       cout<<endl<<"4.Sua danh sach";
       cout<<endl<<"5.Sap xep ";
       cout<<endl<<"6.Xiem rieng";
       cout<<endl<<"7.thoat";
       c=getch();
       switch(c)
       {
        case '1' : nhap();break;
       /* case '2' : xem();break;
        case '3' : tinh();break;
        case '4' : sua();break;
        case '5' : sapxep();break;
        case '6' : xemrieng();break;*/
       }
      }exit(1);
    }
    //----------------------------------
    void main()
    {
     clrscr();
     menu();
    }

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Sắp xếp là sắp xếp cái gì?
    Code hơi bị lẫn lộn trộn lung tung vừa C vừa C++
    Code style khó nhìn quá -_-;;
    None!

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Cái code này mà lọt vào mắt ông RR là xong luôn,C++ không còn sử dụng
    void main
    ,dùng
    int main(...return 0)
    ,code nhiều cái chưa theo chuẩn.
    Bạn muốn sắp xếp cái gì vậy?
    Cánh Chym ứ mỏi

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

    Code cậu viết lung tung quá, như dieucay cũng đã nói -> và điều này làm tui hết hứng để đọc code cậu nữa rùi . Tập viết theo standard C++ đi cậu. Cậu đọc file trong C++ thì dùng ifstream & ofstream dùng open của C làm gì cho cực thế ! Trong box hướng dẫn C++ có 1 bài về file trong C++ vào đó mà đọc lại kiến thức cơ bản đi cậu. Còn đây tui cho 1 bài ví dụ, project của tui năm 1, nó cũng cơ bản lắm, cũng có mở file và sắp xếp, khi ghi lại vào file khác thì phải hoặc là tạo 1 đối tượng fstream khác hoặc là dùng inf.clear(). Cái này tui để cậu suy nghĩ vậy
    C++ Code:
    1. /*
    2.     Program Status :
    3.     -----------------------------------------------
    4.     - The program is complied successfull with    -
    5.     - Visual C++ 2008 express as well as some     -
    6.     - other compilers such as : CodeBlock 8.2,    -
    7.     - g++ 4-3-2 and DevC++ 4-9-2.                 -
    8.     - The program is working pretty fine. There's -
    9.     - no logic-errors and warnings.               -
    10.     -----------------------------------------------
    11. */
    12.  
    13.  
    14. /*
    15.                         .-.-.-.-.-.-.-.-.-.-.-.
    16.                         .                     .    
    17.                         .  All header files   .
    18.                         .                     .    
    19.                         .-.-.-.-.-.-.-.-.-.-.-.
    20. */
    21. #include <iostream>   // for input/output ( cin, cout... )    
    22. #include <string>     // for string class ( string, getline... )
    23. #include <fstream>    // for file manipulation ( fstream, ifstream... )
    24. #include <cassert>    // for logic macro assert ( assert )
    25. #include <iomanip>    // for input/output manipulators ( setw... )
    26.  
    27. using namespace std;
    28.  
    29. /*
    30.     -----------------------
    31.     - Description of data -
    32.     -----------------------
    33.     Constant global variables
    34. */
    35. const size_t MAX_DATA_SIZE            = 50;
    36. const size_t MAX_INSTRUCTION_MESSAGES = 3;
    37. const size_t MAX_USER_MESSAGES        = 5;
    38.  
    39. /*
    40.     -----------------------
    41.     - Description of data -
    42.     -----------------------
    43.     Forward declaration for struct TopicA
    44. */
    45. struct TopicA;
    46.  
    47.  
    48. /*
    49.     -----------------------
    50.     - Description of data -
    51.     -----------------------
    52.     - There two types of messages :
    53.         + instruction_messages[ MAX_MESSAGES ]
    54.         + user_messages[ MAX_USER_MESSAGES ]
    55.     - Two constant strings hold all the outputs of the
    56.       program make it easier to read and modify.
    57.     - The extra constant string [ IM ] shows that this
    58.       is a instructional messages so that we know exactly
    59.       where we print these messages.
    60.     - The necessity of these two strings is that if we want
    61.       to change these outputs into any other languages such
    62.       as Vietnamese, French, Spanish...,we still use the
    63.       rest of other functions without modifying which is
    64.       the principle of reusability.
    65. */
    66. const string instruction_messages[ MAX_INSTRUCTION_MESSAGES ] =
    67. {
    68.     "\n[ IM ] Input:"
    69.     ,
    70.  
    71.     "\n[ IM ] Sorted:"
    72.     ,
    73.    
    74.     "\n[ IM ] Program Over"
    75. };
    76.  
    77.  
    78. const string user_messages[ MAX_USER_MESSAGES ] =
    79. {
    80.     "Enter the name of file that you want to open for input.\n" \
    81.     "(Note : the filename and path cannot contain spaces).\n\n" \
    82.     " [...] : "
    83.     ,
    84.  
    85.     "Would you like to change the default file TopicAin.txt (y, n) ?"
    86.     ,
    87.    
    88.     "Invalid answer detected. Please try again.\n"
    89.     ,
    90.    
    91.     "Output Using Array Notation\n"
    92.     ,
    93.  
    94.     "Output Using Pointer Notation\n"
    95. };
    96.  
    97.  
    98. /*
    99.     -----------------------
    100.     - Description of data -
    101.     -----------------------
    102.     - Default infile name : "TopicAin.txt"
    103.     - Default infile name : "TopicAout.txt"
    104. */
    105. const string DEFAULT_INFILE_NAME  = "TopicAin.txt";
    106. const string DEFAULT_OUTFILE_NAME = "TopicAout.txt";
    107.  
    108. /*
    109.                         .-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    110.                         .                           .
    111.                         .  All function prototypes  .
    112.                         .                           .
    113.                         .-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    114. */
    115.  
    116. /* #1 */
    117. void   swapTwoPointersToTopicAObject( TopicA& , TopicA& );
    118. /* #2 */
    119. size_t readTopicADataFromFile( TopicA*& , TopicA**& );
    120. /* #3 */
    121. void   sortDataByPointerWithStringIsKeyRecord( TopicA**& , size_t );
    122. /* #4 */
    123. void   showArrayDataUsingPointer( ostream& , const TopicA* const* , size_t );
    124. /* #5 */
    125. void   showArrayDataUsingArrayNotation( ostream& , const TopicA* , size_t );
    126. /* #6 */
    127. void   getBackMemoryForSystem( TopicA*&, TopicA**& );
    128. /* #7 */
    129. void   printNameHeader( ostream& );
    130. /* #8 */
    131. void   printMessageErrorWithFileName( ostream& , const string& );
    132. /* #9 */
    133. void   printMessageSuccessWithFileName( ostream& , const string& );
    134. /* #10 */
    135. void   printMessage( ostream& , const string& );
    136. /* #11 */
    137. string getInputFileName( istream& );
    138. /* #12 */
    139. bool   changeDefaultFile();
    140. /* #13 */
    141. void   closingFile( ostream& , const string& );
    142.  
    143. /*
    144.     ---------------------------
    145.     - Description of function -
    146.     ---------------------------
    147.     For the purpose of the two const strings above
    148.         i.e
    149.         - instruction_messages[ MAX_MESSAGES ]
    150.         - user_messages[ MAX_USER_MESSAGES ]
    151.     these four output functions ( i.e #7, #8, #9, #10 ) will
    152.     handle all the outputs of the program, which in this case is
    153.     perfectly applicable for our goal of "reusability".
    154. */
    155.  
    156.  
    157.  
    158. /*
    159.     -----------------------
    160.     - Description of data -
    161.     -----------------------
    162.     Declaration of user-defined type TopicA struct which
    163.     includes 4 types of data :
    164.         - string
    165.         - int
    166.         - double
    167.         - char
    168. */
    169. struct TopicA
    170. {
    171.     string str_data;       //  16 bytes
    172.     int    int_data;       //  4 bytes
    173.     double dbl_data;       //  8 bytes
    174.     char   char_data;      //  1 bytes
    175. };
    176.  
    177.  
    178. /*
    179.                         .-.-.-.-.-.-.-.-.-.-.-.
    180.                         .                     .
    181.                         .  The main program   .
    182.                         .                     .
    183.                         .-.-.-.-.-.-.-.-.-.-.-.
    184. */
    185. int main()
    186. {
    187.     TopicA*  actual_data;
    188.     TopicA** ary_ptr;
    189.     size_t   records;
    190.     ofstream outfile;
    191.     string   outfile_name = DEFAULT_OUTFILE_NAME;
    192.  
    193.     // Open output file
    194.     outfile.open( outfile_name.c_str() );
    195.    
    196.     // Print name header and instruction to user
    197.     printNameHeader( outfile );
    198.  
    199.     //Get data from file and create two array
    200.     records = readTopicADataFromFile( actual_data, ary_ptr );
    201.     assert( records != 0 );
    202.    
    203.  
    204.     // Show the original data
    205.     printMessage( outfile, instruction_messages[ 0 ] );
    206.     showArrayDataUsingPointer( outfile, ary_ptr, records );
    207.  
    208.  
    209.     // Sort data
    210.     sortDataByPointerWithStringIsKeyRecord( ary_ptr, records );
    211.  
    212.     // Show sorted data
    213.     printMessage( outfile, instruction_messages[ 1 ] );
    214.     showArrayDataUsingPointer( outfile, ary_ptr, records );
    215.    
    216.     // Reclaim memory for system
    217.     getBackMemoryForSystem( actual_data, ary_ptr );
    218.  
    219.     // Say goodbye to user
    220.     printMessage( outfile, instruction_messages[ 2 ] );
    221.    
    222.     // Close output file
    223.     closingFile( cout, outfile_name );
    224.     outfile.close();
    225.    
    226.     return 0;
    227. }
    228.  
    229. /*
    230.                         .-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    231.                         .                           .
    232.                         .  All function defintion   .
    233.                         .                           .
    234.                         .-.-.-.-.-.-.-.-.-.-.-.-.-.-.
    235. */
    236.  
    237.  
    238. /*
    239.     ---------------------------
    240.     - Description of function -
    241.     ---------------------------
    242.     #1.
    243.     This function will swap two items of TopicA type
    244.      
    245. */
    246. void swapTwoPointersToTopicAObject( TopicA*& left_obj , TopicA*& right_obj )
    247. {
    248.     TopicA* temporary_obj;
    249.     temporary_object = left_obj;
    250.     left_obj         = right_obj;
    251.     right_obj        = temporary_obj;
    252. }
    253.  
    254.  
    255.  
    256. /*
    257.     ---------------------------
    258.     - Description of function -
    259.     ---------------------------
    260.     #2.
    261.     - This function returns the number of records
    262.     and allocates two array with new operator.
    263.     - The function getBackMemoryForSystem() will deallocate
    264.     these two arrays.
    265.     - Another extra function we use is changeDefaultFile()
    266.     which prompt the user to use the default file or a specific
    267.     file which make our program more flexible.
    268. */
    269. size_t readTopicADataFromFile( TopicA*& a_topic, TopicA**& ary_of_ptr )
    270. {
    271.    
    272.     string infile_name;
    273.    
    274.     // Ask user whether they want to change the default
    275.     // file or not
    276.     if( changeDefaultFile() == true )
    277.         infile_name = getInputFileName( cin );
    278.     else
    279.         infile_name = DEFAULT_INFILE_NAME;
    280.  
    281.  
    282.  
    283.     ifstream infile;              // Filestream use to read data
    284.     size_t   number_of_record;    // The total number of records in file
    285.  
    286.     // Open input file
    287.     infile.open( infile_name.c_str() );
    288.  
    289.     // If we fail to open the file, then exit program immediately
    290.     if( infile.fail() )
    291.     {
    292.         printMessageErrorWithFileName( cout, infile_name );
    293.         exit( 1 );
    294.     }
    295.     // Otherwise, print a friendly messages that : we opened
    296.     // the file successfully
    297.     else
    298.     {
    299.         printMessageSuccessWithFileName( cout, infile_name );
    300.        
    301.         // Allocate data for actual data = MAX_DATA_SIZE :
    302.         a_topic    = new TopicA[ MAX_DATA_SIZE ];
    303.        
    304.         // Read all data from file.
    305.         // Note that && operator will only generate the right
    306.         // side if and only if the left side is true
    307.         // which in this case is perfectly applicable.
    308.         // + case 1 : If the total data is over MAX_DATA_SIZE
    309.         //          then the while loop will stop immediately.
    310.         // + case 2 : If the stream buffer failed then the right
    311.         // side ( i.e index < MAX_DATA_SIZE ) will never checked
    312.         // and while loop will stop immediately.
    313.         size_t index = 0;
    314.         while(    
    315.                    infile >> ( a_topic + index )->str_data
    316.                           >> ( a_topic + index )->int_data
    317.                           >> ( a_topic + index )->dbl_data
    318.                           >> ( a_topic + index )->char_data
    319.                   &&
    320.                     index < MAX_DATA_SIZE
    321.              )
    322.         {
    323.            
    324.             // Increment the number of records
    325.             index++;  
    326.         }
    327.         // Assign the number of actual records to number_of_record
    328.         number_of_record = index;
    329.  
    330.     }
    331.    
    332.  
    333.     size_t unit = 0;
    334.     // Translate all actual data into array of pointers
    335.     ary_of_ptr = new TopicA*[ number_of_record ];
    336.     for( unit = 0; unit < number_of_record; ++unit )
    337.     {
    338.         // An ary_of_ptr pointers points to each actual array elements
    339.            ary_of_ptr[ unit ] = &a_topic[ unit ];
    340.     }
    341.  
    342.     // Close input file
    343.     closingFile( cout, infile_name );
    344.     infile.close();
    345.  
    346.     // return the number_of_record
    347.     return number_of_record;
    348. }
    349.  
    350.  
    351. /*
    352.     ---------------------------
    353.     - Description of function -
    354.     ---------------------------
    355.     #3.
    356.     - This function simply sort all the data by ascending order
    357.     with the key comparision is str_data.
    358.     - We use the "selection sort" technique in this case.
    359. */
    360. void sortDataByPointerWithStringIsKeyRecord( TopicA**& ptr, size_t number_of_record )
    361. {
    362.     size_t fir_index,
    363.            sec_index,
    364.            min_position;
    365.     string minimum_value;
    366.  
    367.     for( fir_index = 0; fir_index < number_of_record - 1; ++fir_index )
    368.     {
    369.         min_position  = fir_index;
    370.         minimum_value = ptr[ fir_index ]->str_data ;
    371.  
    372.         for( sec_index = fir_index + 1; sec_index < number_of_record; ++sec_index )
    373.         {
    374.             if( ptr[ sec_index ]->str_data < minimum_value )
    375.             {
    376.                 min_position  = sec_index;
    377.                 minimum_value = ptr[ sec_index ]->str_data ;
    378.             }
    379.         }
    380.         swapTwoPointersToTopicAObject( ptr[ min_position ], ptr[ fir_index ] );
    381.     }
    382. }
    383.  
    384.  
    385. /*
    386.     ---------------------------
    387.     - Description of function -
    388.     ---------------------------
    389.     #4.
    390.     - This function uses the pointer notation to print out
    391.     the entire data.
    392.     - Note that we use the notation "const TopicA* const* ary"
    393.     which means our data is const and we don't want to modify
    394.     it accidently.
    395. */
    396. void showArrayDataUsingPointer( ostream& out, const TopicA* const* ary, size_t ary_size )
    397. {
    398.     printMessage( out, user_messages[ 4 ] );
    399.     size_t index;
    400.     for( index = 0; index < ary_size; ++index )
    401.     {
    402.         out << ary[ index ]->str_data  << setw( 10 );
    403.         out << ary[ index ]->int_data  << setw( 10 );
    404.         out << ary[ index ]->dbl_data  << setw( 10 );
    405.         out << ary[ index ]->char_data << setw( 10 );
    406.         out << "\n";
    407.     }
    408. }
    409.  
    410.  
    411. /*
    412.     ---------------------------
    413.     - Description of function -
    414.     ---------------------------
    415.     #5.
    416.     - This function uses regular array notation to print
    417.     out the entire data.
    418. */
    419. void showArrayDataUsingArrayNotation( ostream& out, const TopicA* ary, size_t ary_size )
    420. {
    421.     printMessage( out, user_messages[ 3 ] );
    422.     size_t index;
    423.     for( index = 0; index < ary_size; ++index )
    424.     {
    425.         out << ary[ index ].str_data  << setw( 10 );
    426.         out << ary[ index ].int_data  << setw( 10 );
    427.         out << ary[ index ].dbl_data  << setw( 10 );
    428.         out << ary[ index ].char_data << setw( 10 );
    429.         out << "\n";
    430.     }
    431. }
    432.  
    433.  
    434. /* 
    435.     ---------------------------
    436.     - Description of function -
    437.     ---------------------------
    438.     #6.
    439.     - This function will get back the memory for our
    440.     system.
    441.     - It deletes the two pointers level_1 and level_2
    442.     which indicates that one is pointer and one is pointer
    443.     to pointer.
    444. */
    445. void getBackMemoryForSystem( TopicA*& level_1, TopicA**& level_2 )
    446. {
    447.     delete[] level_1;
    448.     delete[] level_2;
    449. }
    450.  
    451.  
    452. /*
    453.     ---------------------------
    454.     - Description of function -
    455.     ---------------------------
    456.     #7.
    457.     - This function will print out the descriptive
    458.     information about the author.
    459. */
    460. void printNameHeader( ostream& out )
    461. {
    462.     out << "    -----------------------------------------------\n";
    463.     out << "    -  Student name   : mr RoxRook                -\n";
    464.     out << "    -  Professor name : Christin Aguilera         -\n";
    465.     out << "    -  Class          : CSM10A Spring 2007        -\n";
    466.     out << "    -  Project        : TopicA project            -\n";
    467.     out << "    -  Due Date       : 07. Jan. 2007             -\n";
    468.     out << "    -----------------------------------------------\n";
    469.     out << "\n";
    470. }
    471.  
    472.  
    473. /*
    474.     ------------------------
    475.     - Description of function -
    476.     ------------------------
    477.     #8.
    478.     As the name described, this function will print
    479.     out the error messages together with the file name.
    480. */
    481. void printMessageErrorWithFileName( ostream& out, const string& infile_name )
    482. {
    483.     out << "\nSorry, the input file '" << infile_name << "' was not found.\n";
    484. }
    485.  
    486.  
    487. /*
    488.     ---------------------------
    489.     - Description of function -
    490.     ---------------------------
    491.     #9.
    492.     As the name described, this function will print
    493.     out the successful messages together with the file name.
    494. */
    495. void printMessageSuccessWithFileName( ostream& out, const string& infile_name )
    496. {
    497.     out << "Input file '" << infile_name << "' is open for reading.\n\n";
    498. }
    499.  
    500.  
    501. /*
    502.     ------------------------
    503.     - Description of function -
    504.     ------------------------
    505.     #10.
    506.     This function will handle all the instructional messages as
    507.     well as user messages.
    508. */
    509. void printMessage( ostream& out, const string& mess )
    510. {
    511.     out << mess << "\n";
    512. }
    513.  
    514.  
    515. /*
    516.     ------------------------
    517.     - Description of function -
    518.     ------------------------
    519.     #11.
    520.     - This function will ask user for a input file name.
    521. */
    522. string getInputFileName( istream& in )
    523. {
    524.     string file_name;
    525.     printMessage( cout, user_messages[ 0 ] );
    526.     in >> file_name;
    527.  
    528.     return file_name;
    529. }
    530.  
    531.  
    532. /*
    533.     ------------------------
    534.     - Description of function -
    535.     ------------------------
    536.     #12.
    537.     - This function will ask user whether or not they
    538.     want to change the default file.
    539.     - If the answer is yes then they have to type in Y or y,
    540.     if the answer is "no" then they have to type in N or n,
    541.     otherwise they have to retype it until they get to
    542.     the correct answer.
    543. */
    544. bool changeDefaultFile()
    545. {
    546.     string user_choice;
    547.     printMessage( cout, user_messages[ 1 ] );
    548.     while( true )
    549.     {
    550.         cin >> user_choice;
    551.         if( user_choice[ 0 ] == 'Y' || user_choice[ 0 ] == 'y' )
    552.             return true;
    553.         if( user_choice[ 0 ] == 'N' || user_choice[ 0 ] == 'n' )
    554.             return false;
    555.         else
    556.             printMessage( cout, user_messages[ 2 ] );
    557.     }
    558. }
    559.  
    560.  
    561. /*
    562.     ------------------------
    563.     - Description of function -
    564.     ------------------------
    565.     #13.
    566.     This function will show a friendly messages to user
    567.     that a in/out file name is closed.
    568. */
    569. void closingFile( ostream& out, const string& file_name )
    570. {
    571.      out << "The '" << file_name << "' is closed.\n\n";
    572. }

  5. #5
    No Avatar
    [VTS] Khách

    vì em mới học C và mới chuyển sang C++ nên code mới lộn xộn thế hơn nữa vì ko có sách nên em chả biết nhiều lệnh trong C thay thế bằng C++ thế nào. Mong các anh thông cảm. Em sẽ nghiên cứu thêm và sửa lại code. Cảm ơn các anh đã giúp đỡ . À ý em bảo sắp xép ở đây là sắp xếp theo điểm trung bình ấy

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

    Mặc định sắp xếp (file )

    Code trên tui sắp xếp theo chuỗi ( tức là str_data đó ), cậu chỉ sữa lại thay vì điều kiện so sánh là str_data thì thành dbl_data. Nếu cậu học tới quá tải toán tử thì thêm operator < là code sẽ rất sáng. Tuy vậy code trên nhanh hơn vì chỗ đó tui swap 2 con trỏ.
    Chịu khó đọc và bắt chước, để ý indent cho code nó đẹp, tên biến, tên hàm phải mang ý nghĩa.
    Sách C++ thì down cuốn này về mà đọc : How to program C++ 5th Edition !

  7. #7
    No Avatar
    [VTS] Khách

    anh à tiện đây cho em hỏi luôn với : cách truy cập file cấu trúc của c và c++ có gì khác nhau ko hay chỉ khác nhau về cách dùng câu lệnh thôi ạ?

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

    Câu lệnh thì khác chứ, nhưng internal khác làm sao thì tui chịu . Trong C++ mấy cái xử lý file là đối tượng. Còn C thì tui chịu, vì chưa bao giờ có dịp coi source của compiler C cả ! Cái này thì cậu google thử coi sao

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