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

Đề tài: so sánh gets và fgets ???

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

    Unhappy so sánh gets và fgets ???

    Code:
    int main(){
    char a[30],b[30];
    
    FILE *p;
    p=fopen("d://data01.txt","wt");
    gets(a);
    fprintf(p,"%s\n");
    
    fclose(p);
    p=fopen("d://data01.txt","rt");
    fgets(b,30,p);
    
    printf("chuoi a : %sx\n",a);
    printf("chuoi b : %sx\n",b);
    
    int i=strcmp(a,b)
    
    fclose(p);
    return 1;
    }
    Dùng gets() thì nó chỉ lưu cho tới khi mình nhấn Enter , fgets() đọc từ flle nhưng nó không hiểu ký tự xuống hàng (\n) vì vậy không so sánh dc >_< .
    Vậy có cách nào nhập dữ liệu vào file thì hàm fgets() chỉ lấy chuỗi đến khi gặp ký tự \n không ???

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Nếu "nghi ngờ" chuỗi lấy được có chứa kí tự xuống dòng ở cuối thì thêm dòng này để loại nó:

    C Code:
    1. if( b[strlen(b)-1] == 10 )
    2.      b[strlen(b)-1]=0;
    code ra gió bão

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    http://www.cplusplus.com/reference/c...dio/fgets.html
    Trích dẫn Nguyên bản được gửi bởi cplusplus.com
    char * fgets ( char * str, int num, FILE * stream );
    Reads characters from stream and stores them as a C string into str until (num-1) characters have been read or either a newline or a the End-of-File is reached, whichever comes first.
    A newline character makes fgets stop reading, but it is considered a valid character and therefore it is included in the string copied to str.
    A null character is automatically appended in str after the characters read to signal the end of the C string.
    char * fgets ( char * str, int num, FILE * stream );
    Đọc các kí tự là lưu trữ chúng như 1 chuỗi do con trỏ srt quản lý cho đến khi (num-1) kí tự đã được đọc hoặc gặp 1 kí tự xuống dòng hoặc đã đến cuối file.
    1 kí tự xuống dòng làm fgets ngừng đọc, nhưng nó không được đưa vào chuỗi và vì vậy nó được đưa vào 1 bản sao của srt.
    1 kí tự null(null character) có mã ascii là 0 được tự động thêm vào str cuối của xâu kí tự.
    qua lời chú giải trên thì hàm fgets tự động dừng khi gặp ki tự xuống dòng đấy chứ, đâu cần tác động thêm

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

  1. Bài tập C++ Một bài căn bản C++ và cách sử dụng fgets
    Gửi bởi newbie001 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 11-09-2012, 05:27 PM
  2. Lập trình C cách sử dụng hàm fgets
    Gửi bởi hienclubvn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 15-07-2010, 01:15 PM
  3. Xin hỏi cách lấy dữ liệu nhập vào từ console sử dụng hàm fgets()
    Gửi bởi tonytrinh trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 04-04-2010, 01:17 PM
  4. [ Solved ]Cho hỏi về hàm fgets và fputs
    Gửi bởi khanh_0507 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 07-09-2008, 03:21 PM
  5. Cho em hỏi về lệnh fgets
    Gửi bởi fcmtuan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 22-05-2007, 07:46 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