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

Đề tài: [C] Cho tôi hỏi về hàm fread

  1. #1
    No Avatar
    petepan86 Khách

    Mặc định [C] Cho tôi hỏi về hàm fread

    Trong C có hàm fread để đọc một khối nhiều bản ghi (Dạng file cấu trúc). Vậy các bạn cho mình hỏi điều kiện khi đọc hết một file là gì???

  2. #2
    No Avatar
    petepan86 Khách

    Trích dẫn Nguyên bản được gửi bởi petepan86
    Trong C có hàm fread để đọc một khối nhiều bản ghi (Dạng file cấu trúc). Vậy các bạn cho mình hỏi điều kiện khi đọc hết một file là gì???
    Cám ơn nhiều

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

    Không hiểu .... spam chăng ?_?
    None!

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    fread Function:

    Reads data from a stream

    Declaration

    size_t fread(void *ptr, size_t size, size_t n, FILE *stream);

    Remarks

    fread reads a specified number of equal-sized data items from an input stream into a block.

    Argument What It Is/Does


    ptr Points to a block into which data is read
    size Length of each item read, in bytes
    n Number of items read
    stream Points to input stream


    The total number of bytes read is (n * size).

    Return Value

    On success, fread returns the number of items (not bytes) actually read

    On end-of-file or error, fread returns a short count (possibly 0)

    fread function example:

    Code:
    #include <string.h>
    #include <stdio.h>
    
    int main(void)
    {
       FILE *stream;
       char msg[] = "this is a test";
       char buf[20];
    
       if ((stream = fopen("DUMMY.FIL", "w+"))
           == NULL)
       {
          fprintf(stderr, "Cannot open output file.\n");
          return 1;
       }
    
       /* write some data to the file */
       fwrite(msg, strlen(msg)+1, 1, stream);
    
       /* seek to the beginning of the file */
       fseek(stream, SEEK_SET, 0);
    
       /* read the data and display it */
       fread(buf, strlen(msg)+1, 1, stream);
       printf("%s\n", buf);
    
       fclose(stream);
       return 0;
    }
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  5. #5
    Ngày gia nhập
    07 2006
    Bài viết
    166

    foef(FILE *);

  6. #6
    No Avatar
    petepan86 Khách

    Mặc định [C] Cho tôi hỏi về hàm fread

    Cảm ơn bạn nhiều. Nhưng mà tôi muốn hỏi thêm thế này, hàm fread đó đọc theo một khối theo nhiều bản ghi, hay một khối theo byte. Nếu đọc theo một khối nhiều bản ghi thì trong bản thân nó đã có vòng lặp rồi phải không??? Giúp mình với, cảm ơn bạn nhiều nhé.
    ps: Không phải mình spam, chỉ là lỡ tay bấm nhầm nút(^_^)

  7. #7
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Trích dẫn Nguyên bản được gửi bởi petepan86
    Cảm ơn bạn nhiều. Nhưng mà tôi muốn hỏi thêm thế này, hàm fread đó đọc theo một khối theo nhiều bản ghi, hay một khối theo byte.
    Ở trong hàm đó có tham số chỉ định kích thước (theo byte) sẽ được đọc, bạn muốn đọc vào biến nào thì chỉ việc đưa tên biến đó vào tham số thứ nhất, kiểu gì cũng được bản ghi, byte, ... được hết.
    Code:
    why (!foef(file))
    {
    
    BYTE i; MY_STRUCT something; MY_STRUCT *something1; fread(&i, sizeof(i), 1, file); fread(&something, sizeof(something), 1, file); something1 = new MY_STRUCT(); fread(something1, sizeof(MY_STRUCT), 1, file); //.......................... //.........................
    }
    Đại loại là vậy

  8. #8
    Ngày gia nhập
    08 2010
    Bài viết
    81

    Bạn xem ví dụ này là hiểu ngay:
    Code:
    #include <stdio.h>
    
    struct mystruct
    {
      int i;
      char ch;
    };
    
    int main(void)
    {
       FILE *stream;
       struct mystruct s, s1;
    
       if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
       {
          fprintf(stderr, "Cannot open output file.\n");
          return 1;
       }
       s.i = 0;
       s.ch = 'A';
       fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
       fclose(stream); /* close file */
    
       stream = fopen("TEST.$$$", "rb");
       fread(&s1, sizeof(s1), 1, stream);
       fclose(stream);
       printf("%c",s1.ch);
       return 0;
    }

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

  1. Đọc từ file bằng fread
    Gửi bởi atbOmay trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-03-2012, 04:46 PM
  2. Lập trình C Lỗi đọc file và ghi file với fread, fwrite :(
    Gửi bởi philip12a8 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 22-12-2011, 10:10 AM
  3. Bài tập C sủ dụng hàm fread và fwrite bị lỗi
    Gửi bởi laimotlanuabi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 01-05-2011, 12:47 AM
  4. lỗi đọc ghi file dùng hàm fwrite và fread
    Gửi bởi supnobita trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 02-01-2011, 08:42 PM
  5. Bài tập C Lệnh fread trong tệp nhị phân
    Gửi bởi sunshine trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-07-2010, 01:35 PM

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