Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Tuyển nhân sự diễn đàn 2014

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Cuộc thi khoảnh khắc tuyệt vời cùng Vn-Zoom.com

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tin tức công nghệ mới nhất

Sản phẩm đáng chú ý tại Asus Expo 2014
kết quả từ 1 tới 13 trên 13

Đề tài: Đọc File TRong C

  1. #1
    Reid Nguyen's Avatar
    Reid Nguyen vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Apr 2011
    Bài
    269
    Cảm ơn
    48
    Điểm
    35/31 bài viết
    VR power
    0

    Default Đọc File TRong C

    Thông thường hàm đọc file của mình có dạng như thế này :

    Code:
    void docfile()
    {
          FILE*fp=fopen("d:\\prim\dothi.txt","r");
    	fscanf(fp,"%d",&g.n);
    	for(int i=0;i<g.n;i++)
    	{
    		for(int j=0;j<g.n;j++)
    		{
    			fscanf(fp,"%d",&g.a[i][j]);
    			printf("%d",g.a[i][j]);
    		}
    	}
    	fclose(fp);
    }
    đường dẫn là mình nhập vào rồi nó mới load file ra.Như vậy thì sang máy khác nó lại sai đường dẫn.
    Có cách nào không khi mình đọc file không cần phải nhập đường dẫn như vậy không hoặc làm cho đường dẫn không mặc định dù ở máy nào nó củng đọc được hết.

    Các pro giúp dùm.

  2. #2
    squirrel_black's Avatar
    squirrel_black vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Mar 2011
    Đến từ
    Quần đảo Hoàng Sa
    Bài
    490
    Cảm ơn
    262
    Điểm
    154/97 bài viết
    VR power
    0

    Default

    Trích Reid Nguyen View Post
    Thông thường hàm đọc file của mình có dạng như thế này :

    Code:
    void docfile()
    {
          FILE*fp=fopen("d:\\prim\dothi.txt","r");
    	fscanf(fp,"%d",&g.n);
    	for(int i=0;i<g.n;i++)
    	{
    		for(int j=0;j<g.n;j++)
    		{
    			fscanf(fp,"%d",&g.a[i][j]);
    			printf("%d",g.a[i][j]);
    		}
    	}
    	fclose(fp);
    }
    đường dẫn là mình nhập vào rồi nó mới load file ra.Như vậy thì sang máy khác nó lại sai đường dẫn.
    Có cách nào không khi mình đọc file không cần phải nhập đường dẫn như vậy không hoặc làm cho đường dẫn không mặc định dù ở máy nào nó củng đọc được hết.

    Các pro giúp dùm.
    ko đc đâu bạn à.cái tập tin ấy sang máy khác có tồn tại đâu.
    Nhận làm bài tập lớn,đồ án web ASP.Net,Winform theo yêu cầu.Liên hệ black.squirrel.it@gmail.com

  3. #3
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.128/2.749 bài viết
    VR power
    0

    Default

    Trích Reid Nguyen View Post
    Thông thường hàm đọc file của mình có dạng như thế này :

    Code:
    void docfile()
    {
          FILE*fp=fopen("d:\\prim\dothi.txt","r");
    	fscanf(fp,"%d",&g.n);
    	for(int i=0;i<g.n;i++)
    	{
    		for(int j=0;j<g.n;j++)
    		{
    			fscanf(fp,"%d",&g.a[i][j]);
    			printf("%d",g.a[i][j]);
    		}
    	}
    	fclose(fp);
    }
    đường dẫn là mình nhập vào rồi nó mới load file ra.Như vậy thì sang máy khác nó lại sai đường dẫn.
    Có cách nào không khi mình đọc file không cần phải nhập đường dẫn như vậy không hoặc làm cho đường dẫn không mặc định dù ở máy nào nó củng đọc được hết.

    Các pro giúp dùm.
    2 vấn đề
    - Trong C khi dùng dấu \ để ghi đường dẫn bắt buộc phải \\ nó mới chắc
    FILE*fp=fopen("d:\\prim\\dothi.txt","r");
    - Trong ổ cứng của bạn có ổ D và trong ổ D lại có thư mục prim nhưng ổ cứng khác của máy khác lại chưa chắc đã có cho nên để chắc chắn thì bạn đừng để kiểu tường minh như thế mà nên để đường dẫn không tường minh

    FILE*fp=fopen("dothi.txt","r");

    Lúc này thì 2 file source code .cpp và file dothi.txt luôn phải ở cùng nhau trong 1 thư mục
    Và giờ thì copy thư mục này sang bất cứ chỗ nào, máy nào đều chạy đc bình thường

  4. #4
    Tham gia
    Sep 2010
    Bài
    5
    Cảm ơn
    0
    Điểm
    2/2 bài viết
    VR power
    0

    Default

    các bạn ơi cho mình hỏi với.mình đang làm btl thầy bắt lấy dữ liệu từ một file ra nhưng tên file la do người dùng gõ vào(ko được mặc định),nếu gõ ko đúng sẽ báo sai.ai bít giúp mình với

  5. #5
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.128/2.749 bài viết
    VR power
    0

    Default

    Trích dinhthinh9037 View Post
    các bạn ơi cho mình hỏi với.mình đang làm btl thầy bắt lấy dữ liệu từ một file ra nhưng tên file la do người dùng gõ vào(ko được mặc định),nếu gõ ko đúng sẽ báo sai.ai bít giúp mình với
    Code:
    char *path="dothi.txt"; //nhập link vào cái chuỗi này
    fp=fopen(path,"r");

  6. #6
    19-6's Avatar
    19-6 vẫn chưa có mặt trong diễn đàn Moderator
    Tham gia
    Sep 2008
    Đến từ
    Abyss
    Bài
    1.904
    Cảm ơn
    858
    Điểm
    3.413/1.515 bài viết
    VR power
    0

    Default

    Trích dinhthinh9037 View Post
    các bạn ơi cho mình hỏi với.mình đang làm btl thầy bắt lấy dữ liệu từ một file ra nhưng tên file la do người dùng gõ vào(ko được mặc định),nếu gõ ko đúng sẽ báo sai.ai bít giúp mình với
    Code:
    #include <stdio.h>
    #include <conio.h>
    main()
    {
     FILE *f;
     char fileName[40];
     printf("Nhap ten file: ");
     gets(fileName);
     f=fopen(fileName, "rt");
     if(!f) printf("File khong ton tai!");
     else printf("File ton tai!");
     fclose(f);
     getch();
    }


  7. #7
    Tham gia
    Sep 2010
    Bài
    5
    Cảm ơn
    0
    Điểm
    2/2 bài viết
    VR power
    0

    Default

    cám ơn các bạn nhiều nhé may quá

  8. #8
    vanthanh9176's Avatar
    vanthanh9176 vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Mar 2011
    Bài
    17
    Cảm ơn
    49
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    Trong:

    void docfile()
    {
    FILE*fp=fopen("d:\\prim\dothi.txt","r");
    fscanf(fp,"%d",&g.n);
    for(int i=0;i<g.n;i++)
    {
    for(int j=0;j<g.n;j++)
    {
    fscanf(fp,"%d",&g.a[i][j]);
    printf("%d",g.a[i][j]);
    }
    }
    fclose(fp);
    }

    g.n là gì vậy bạn ?.

  9. #9
    giaicuu_505_1412's Avatar
    giaicuu_505_1412 vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Jun 2009
    Đến từ
    Hà Nội
    Bài
    396
    Cảm ơn
    11
    Điểm
    134/114 bài viết
    VR power
    0

    Default

    Gợi ý đơn giản:
    - Cái đường dẫn bản lưu trong mảng String _(char[50])
    - Trong C để đọc file thì cái đường dẫn phải có dạng \\...\\
    vì vậy bạn cần 1 hàm để xử lý chuỗi filename giúp người dùng chỉ phải nhập dạng \...\ nhg CT vẫn hiểu là có \\
    - Sau khi user nhập đường dẫn, cần truyền vô cho hàm void docfile(char filename[]);
    - CT gọi bt thứ tư gọi bao gồm:
    +nhập filename
    +xứ lý chuỗi
    +docfile(filename);

  10. #10
    Tung_Huynh's Avatar
    Tung_Huynh vẫn chưa có mặt trong diễn đàn Cống hiến cho [V-Z]
    Tham gia
    Jul 2009
    Đến từ
    Thái Nguyên
    Bài
    6.777
    Cảm ơn
    1.540
    Điểm
    4.128/2.749 bài viết
    VR power
    0

    Default

    Trích vanthanh9176 View Post
    Trong:

    void docfile()
    {
    FILE*fp=fopen("d:\\prim\dothi.txt","r");
    fscanf(fp,"%d",&g.n);
    for(int i=0;i<g.n;i++)
    {
    for(int j=0;j<g.n;j++)
    {
    fscanf(fp,"%d",&g.a[i][j]);
    printf("%d",g.a[i][j]);
    }
    }
    fclose(fp);
    }

    g.n là gì vậy bạn ?.
    đấy là kiểu cấu trúc do chủ top tạo ra phục vụ cho việc j đó

    bạn ko dùng đến nó thì cứ bỏ cái g. đi r khai báo các biến n và mảng a[] như bình thường thôi

  11. #11
    o0othanhbango0o's Avatar
    o0othanhbango0o vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Nov 2010
    Bài
    30
    Cảm ơn
    27
    Điểm
    3/3 bài viết
    VR power
    0

    Default

    mấy bác co em hỏi trong C đọc file kí tự "r" với "rt" có khác nhau chỗ nào ko? và công dụng để làm gì ạ?

  12. #12
    tranvanhung.hvt's Avatar
    tranvanhung.hvt vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Sep 2012
    Đến từ
    Hanoi.Vietnam
    Bài
    593
    Cảm ơn
    27
    Điểm
    226/99 bài viết
    VR power
    0

    Default

    b Mở tập tin kiểu nhị phân (binary)
    t Mở tập tin kiểu văn bản (text) (mặc định)
    r Mở tập tin chỉ để đọc dữ liệu từ tập tin. Trả về NULL nếu không tìm thấy tập tin.
    w Mở tập tin chỉ để ghi dữ liệu vào tập tin. Tập tin sẽ được tạo nếu chưa có, ngược
    lại dữ liệu trước đó sẽ bị xóa hết.

  13. #13
    khikhotri's Avatar
    khikhotri vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Apr 2013
    Bài
    2
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Cool

    Trích Reid Nguyen View Post
    Thông thường hàm đọc file của mình có dạng như thế này :

    Code:
    void docfile()
    {
          FILE*fp=fopen("d:\\prim\dothi.txt","r");
    	fscanf(fp,"%d",&g.n);
    	for(int i=0;i<g.n;i++)
    	{
    		for(int j=0;j<g.n;j++)
    		{
    			fscanf(fp,"%d",&g.a[i][j]);
    			printf("%d",g.a[i][j]);
    		}
    	}
    	fclose(fp);
    }
    đường dẫn là mình nhập vào rồi nó mới load file ra.Như vậy thì sang máy khác nó lại sai đường dẫn.
    Có cách nào không khi mình đọc file không cần phải nhập đường dẫn như vậy không hoặc làm cho đường dẫn không mặc định dù ở máy nào nó củng đọc được hết.

    Các pro giúp dùm.
    Bạn nên copy luôn cái file đó wa máy khác cùng với chương trình

 

 

Quyền sử dụng

  • 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ể tự sửa bài viết của mình
  •