User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 6 của 6

Chủ đề: Giá trị EOF trong C++

  1. #1
    1111 Avatar của ktuan
    Tham gia ngày
    Nov 2011
    Bài gửi
    52

    Mặc định Giá trị EOF trong C++

    Hôm nay trên giảng đường lằng nhằng với giá trị của EOF, viết code cho mọi người dễ hiểu để sử dụng
    PHP Code:
    /*
      Name: p1
      Copyright:ktuan 
      Author: ktuan
      Date: 21/11/11 19:55
      Description: chuong trinh xu ly do du lieu tu file input.txt
      vao xuat noi dung do sang file output.txt
      kiem tra gia tri cu ky tu EOF la -1
      ky tu cua EOF trong file la :ÿ
      khi hiem thi trong stdin: se la ky tu trang
    */
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    int main(){
         
    FILE *fi,*fo;
         
    char ch;
         
    //Xu ly doc file van ban input.txt de kiem tra ky tu EOF
         //noi dung cua file input.txt:"123456"
         
    fi=fopen("input.txt","r");
         
    fo=fopen("output.txt","w");
         
         
    ch=111;
         while ((
    ch=fgetc(fi))!=EOF){
               
    //fputc(ch,fo);
               
    fprintf(fo,"%d\n",ch);
         }
         
    // Thoat ra khoi vong lap, gia tri cua ky tu ch la ky tu EOF
         
    printf("Gia tri cua ky tu EOF la: %d\n",ch);
         
    printf("Ky tu EOF trong man hinh: %c\n",ch);
         
    fprintf(fo,"Gia tri cua ky tu EOF la: %d\n",ch);
         
    fprintf(fo,"Ky tu EOF trong van ban: %c\n",ch);
         
    system("pause");
         
    //...............
         
    fclose(fi);
         
    fclose(fo);
         
         
    //noi dung cua file input2.txt:"123ÿ456"
         
    fi=fopen("input2.txt","r");
         
    fo=fopen("output2.txt","w");
         
    //...............
         
    ch=111;
         while ((
    ch=fgetc(fi))!=EOF){
               
    //fputc(ch,fo);
                
    fprintf(fo,"%d\n",ch);
         }
         
    //...............
         
    fclose(fi);
         
    fclose(fo);
              
         return 
    0;  

    1111

  2. Có 3 thành viên cảm ơn bài viết của ktuan có chất lượng:


  3. #2
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định

    Tuấn ơi sao tớ biên dịch trên Linux thì khi chạy nó báo lỗi "Segmentation fault" là sao nhỉ?
    Contact me:
    Email: sangnd [at] svBK.vn
    Personal website: My Blog | Chat với người lạ
    Facebook Page của Bách Khoa Forum: http://www.facebook.com/svbk.vn

  4. #3
    1111 Avatar của ktuan
    Tham gia ngày
    Nov 2011
    Bài gửi
    52

    Mặc định

    cau thu bo "#include<iostream.h>" voi"system("pause")" xem the nao
    them vao getch() o cuoi truoc "return 0"
    //To dung cai nay de dung man hinh de doc//

  5. #4
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định

    Tớ bỏ 2 cái đó đi rồi, getch() thì ko dùng được vì cần phải có thư viện conio.h (thư viện này chỉ có trên windows) mà cũng ko cần hàm getch() làm gì vì kết quả khi biên dịch bằng dòng lệnh nó hiện luôn lên màn hình rồi.

    Có cả 1 trang wiki nói về lỗi này: http://en.wikipedia.org/wiki/Segmentation_fault

    // Viết tiếng Việt có dấu Tuấn nhé ^^

  6. Tớ cảm ơn 1973 đã chia sẻ.


  7. #5
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định

    Hình như do tớ quên tạo 2 file input.txt và input2.txt nên nó báo lỗi như vậy Tuấn ạ, hôm nay tớ tạo 2 file đó với nội dung như trong mã nguồn của cậu chú thích thì chạy ngon lành, tuy nhiên kết quả có khác chút ít so với khi chạy trên Windows:

    Ra màn hình:

    Mã:
    Gia tri cua ky tu EOF la: -1
    Ky tu EOF trong man hinh: �
    File output.txt:

    49
    50
    51
    52
    53
    54
    10
    Gia tri cua ky tu EOF la: -1
    Ky tu EOF trong van ban: ÿ
    File output2.txt

    49
    50
    51
    -61
    -65
    52
    53
    54
    10

  8. #6
    1111 Avatar của ktuan
    Tham gia ngày
    Nov 2011
    Bài gửi
    52

    Mặc định

    Trên windown thì khi chạy nó ra thế này:
    intput: 123456
    input2: 123ÿ456
    Kết quả ra:
    output
    49
    50
    51
    52
    53
    54
    Gia tri cua ky tu EOF la: -1
    Ky tu EOF trong van ban: ÿ
    output2
    49
    50
    51

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. lv3 trong deche.vn chỉ trong 19h
    Gửi bởi denosagas trong mục Game Online
    Trả lời: 0
    Bài cuối: 01-07-2009, 08:31 PM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

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


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube