Announcement

Collapse
No announcement yet.

Fscanf và printf

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Ansi C] Fscanf và printf

    Chào mọi người !
    Mình có mọt vấn đề hiện chưa giải quyết được như sau:

    File input:
    PHP Code:
    123 456 Nguyễn Thị Minh Khai 
    Mình dùng fscanf như sau:

    fscanf(pfile,"%d %d %[^\n]s", &num1, &num2, &name); (name là mảng name[255]);

    okay, đối với hai số đầu tiên thì dùng printf in ra bình thường, còn với chuỗi sau thì không được.

    printf("%s\n",name); giải quyết được vấn đề này.

    Nhưng với file input nhiều hơn 1 dòng muốn in ra hàng ngang thì không được mà chỉ in được hàng dọc. Cách giải quyết cho vấn đề này thế nào, mong các pro chém nhiệt tình.

    vd: input file:
    PHP Code:

    123 456 Nguyễn thị Minh Khai

    345 678 Ok Ok 
    mong muốn in ra: Nguyễn Thị Minh Khai, OK Ok. Nhưng em chỉ làm được như sau:

    Nguyễn thị Minh Khai
    Ok Ok

    :sosad:
    Last edited by 10520058; 25-10-2012, 21:26.
    Be different and always different
    http://archlinuxvn.org/
    http://theslinux.org
    http://lab.infosec.xyz

  • #2
    Dùng fread hoặc fgets để dọc theo bytes với kiểu dữ liệu này thì hợp lý hơn.
    fscanf nó check các param vào nếu hớp với các pattern thì nó copy vào biến. Có thể vào cplusplus để check lại.

    Comment


    • #3
      Originally posted by 11520118 View Post
      Dùng fread hoặc fgets để dọc theo bytes với kiểu dữ liệu này thì hợp lý hơn.
      fscanf nó check các param vào nếu hớp với các pattern thì nó copy vào biến. Có thể vào cplusplus để check lại.
      đang tìm solution cho nó không phải phủ định nó mà chú :-)
      Be different and always different
      http://archlinuxvn.org/
      http://theslinux.org
      http://lab.infosec.xyz

      Comment


      • #4
        anh không rõ vấn đề này, em check lại nha

        "Nguyễn Thị Minh Khai" là em đặt ví dụ, hay là possible test case ? Vì nó là Unicode, phải dùng wchar, http://stackoverflow.com/questions/1...utf-8-encoding

        Nếu em đang đặt ví dụ sai, bản chất là ASCII, ko phải unicode, thì anh thấy code chạy bình thường cơ mà ? printf("%s", name) vẫn ok ?
        Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

        Comment


        • #5
          Originally posted by 09520019 View Post
          anh không rõ vấn đề này, em check lại nha

          "Nguyễn Thị Minh Khai" là em đặt ví dụ, hay là possible test case ? Vì nó là Unicode, phải dùng wchar, http://stackoverflow.com/questions/1...utf-8-encoding

          Nếu em đang đặt ví dụ sai, bản chất là ASCII, ko phải unicode, thì anh thấy code chạy bình thường cơ mà ? printf("%s", name) vẫn ok ?
          Em xin lỗi, em đang làm ví dụ, còn test case là không có dấu anh ah.
          đây là toàn bộ test case của nó:
          PHP Code:
          10 6
          16 23
          0 1  Nguyen Tri Phuong
          0 2  Ly Thai To
          0 3  Thanh  tHAI
          0 4   3 THANG   2
          0 5 3 thang   2
          1 2   NGO giA tu
          1 7 NGUyen  CHI thanh
          1 8   nguyen CHI THANH
          2 9 Ly Thai To
          3 6  LU  GIA
          3 12  lu gia
          4 12 cach  MANG      thANG 8
          4 13  CACH mang thang     8
          5 6 ly  thuong   kiet
          5 7 LY THUONG KIET
          7 11 Ly    thuonG kieT
          8 9 HUNG     VUONG
          9 10  NGUYEN van Cu
          9 15 nguyen thi    minh KHAI
          10 11   An DUONG       vuong
          10 14 nguyen van cu
          13 15  CACH mang thang     8
          14 15  TRAN     HUng DaO 
          chạy không bình thường đâu anh ơi, em in nếu không có \n thì nó không in ra gì cả :-s
          Be different and always different
          http://archlinuxvn.org/
          http://theslinux.org
          http://lab.infosec.xyz

          Comment

          LHQC

          Collapse
          Working...
          X