chào bạn, trước hết thì mình hướng dẫn bạn debug code với tham số command line:
- bạn click chuột phải vào project -> chọn Properties (hoặc chọn PROJECT từ thanh công cụ, chọn xxx Properties..., xxx là tên project của bạn), hiện ra một cửa sổ
- ở khung bên trái, chọn Configuration Properties -> Debugging, ở khung bên phải, dòng Command Arguments, nhập vào tham số bạn sẽ nhập lúc chạy nhưng bỏ đi tên file exe sẽ chạy, vd bình thường bạn nhập >> test1.exe in.txt out.txt thì bây giờ chỗ này bạn nhập vào là in.txt out.txt, chọn OK
như vậy bạn có thể đặt breakpoint và debug như bình thường
Tiếp theo, code của bạn có một số vấn đề ntn:
ở phiên bản VS mới (ở đây mình dùng 2013, không biết 2012 có bị ko), nó sẽ báo lỗi ở hàm fopen, để bỏ qua lỗi đó, bạn có thể sử dụng:
#define _CRT_SECURE_NO_WARNINGS
Vấn đề thứ 2 là vòng lặp của bạn sẽ làm cho chương trình đọc kí tự cuối cùng của file tới 2 lần, có thể xử lý như sau:
while (1)
{
fscanf(fin, "%c", &g);
if (feof(fin))
break;
p = &g;
printf("%c", *p);
fprintf(fout, "%c", *p);
}
code này mình đã sửa một chút để nó ghi ra file out.txt có nội dung đúng hoàn toàn với file in.txt, code của bạn là bạn in ra địa chỉ của p, chứ ko phải giá trị của p
Thứ 3, nếu hàm fcloseall() báo lỗi thì hãy dùng _fcloseall()