Hổ trợ về đường dẫn tương đối trong lập trình C/C++
Mình gặp rắc rối về đường dẫn tương đối khi đọc ghi file trong C/C++.
Trong các clip hướng dẫn các Thầy toàn dùng đường dẫn tuyệt đối, ví dụ: “C:/input.txt”. Nếu dùng đường dẫn này khi mang project chép sang máy khác sẽ không chạy được do không đúng đường dẫn.
Vấn đề mình phải đổi sang đường dẫn tương đối như thế nào?
Ví dụ file input.txt và file source của chương trình đặt cùng thư mục như sau:
- file input.txt: D:/LTDT/DocGhiFile/input.txt
- file chuong trình: D:/LTDT/DocGhiFile/Program.cs
Hàm : NhapMangTuFile(“D:/LTDT/DocGhiFile/input.txt”); thì chạy được nhưng giờ muốn dùng đường dẫn tương đối thì không biết như thế nào.
Mong mọi người giúp đỡ. Xin cảm ơn.
Cái file txt mà cùng thư mục với file chương trình thì khỏi cần đường dẫn. Ghi thẳng tên file ra luôn
Lưu cùng với file chương trình đc
Bạn có thể tạo đường dẫn tương đối như sau:
Ví dụ ở đây mình muốn tạo file employees.dat bằng đường dẫn tương đối thì mình tạo một thư mục có tên HR trong cùng thư mục chứa source code và sau đó dùng lệnh như sau : FILE* fp = fopen(“HR\\employees.dat”, “wt”);
Kết quả sẽ thao tác với file sẽ nằm trong thư mục HR.
Nhưng hơi lạ là sao bạn hỏi xử lý file trong C/C++ mà file chương trình của bạn lại có đuôi .cs nhỉ. (Đấy là định dạng của source code C# mà)
Cách tốt nhất là get working directory , xong rồi từ đó thêm bớt cho nó tới cái đường dẫn tới file …
Sao ai cũng bảo file txt cùng thư mục với file chương trình thì không cần đường dẫn nhưng mình dùng Visual studio 2013 đã thử mà vẫn không chạy được, toàn báo lỗi không tìm thấy file
Hay phải cài đặt gì đấy cho vs của mình nhỉ?