Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Hàm này bị sai chỗ nào?

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    25

    Mặc định Hàm này bị sai chỗ nào?

    Code:
    void Myclass::inputText(char *filename, char *T)
    {
    	
    	FILE *f;
    	filename = new char[10];
    	printf("Nhap vao ten File:");
    	gets(filename);
    	f = fopen(filename,"r");
    	while (!feof(f))
    	{
    		fscanf(f,"%s",&T);
    		printf("%s", T);
    	}
    	fclose(f);
    		
    }
    Khi build thì không có vấn đề gì nhưng khi chạy lại ra lỗi. Không hiểu là lỗi gì nữa :(.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Nếu chuỗi filename dài hơn 9 ký tự thì sẽ có lỗi đó bạn. Bạn thử tăng kích thước của vùng nhớ chứa chuỗi filename lên 100 xem sao.

    PS : cấp phát xong thì nhớ hủy vùng nhớ nha bạn.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    cái này không rõ thế nào:

    C++ Code:
    1. void Myclass::inputText(char *filename, char *T) // filename: con trỏ truyền vào
    2. {
    3.    
    4.     FILE *f;
    5.     filename = new char[10]; // định nghĩa lại ... không biết có hợp lệ không đây...
    None!

  4. #4
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Visual C++ Code:
    1. FILE * fopen ( const char * filename, const char * mode );
    Visual C++ Code:
    1. void Myclass::inputText(const char *filename, const char *T)
    Tự dưng lại làm cái mảng char làm gì cho mệt xác ra?. Mà truyền từ ngoài vào hàm mà không định modify dùng const char* nhá. Mà không hiểu cậu định làm gì luôn, đã nhập tên file = console rồi sao lại còn.
    Visual C++ Code:
    1. void Myclass::inputText(char *filename, char *T)
    Visual C++ Code:
    1. filename = new char[10];
    Lại tạo một cái mảng char mới rồi gán địa chỉ phần tử đầu tiên cho filename, không hiểu muốn gì.
    Đã được chỉnh sửa lần cuối bởi NamVoDang : 25-12-2008 lúc 10:03 PM.
    Phá toái hư không - Bạch nhật thăng thiên.

Quyền hạn của bạn

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