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

Đề tài: Không in ra vị trí đầu tiên.

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    249

    Mặc định Không in ra vị trí đầu tiên.

    đây là chương trình đọc 1 tệp số nguyên và in ra màn hình.
    tệp có dạng 1 2 3 4 5 6 7...
    Khi chạy chương trình thì chỉ in ra vị trí thứ 2 trở đi là 2 3 4 5 6 7...
    Ai nhìn thấy lỗi giúp mình với.
    Code:
    #include<stdio.h>
    #include<conio.h>
    int main()
    {
    
    	int i=0,ch,dem = 0;
    	int a[100];
    
    	FILE *f;
    	f = fopen("vidu.txt","r");
    	while ((ch =getc(f))!= EOF)
    	{		
    	fscanf(f,"%d",&a[i]);
    	i++;
    	dem++;
    	}	
    	
    	for (i=0;i<dem;i++)
    	printf ("%d",a[i]);
    	fclose(f);
    }
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

  2. #2
    Ngày gia nhập
    10 2010
    Bài viết
    249

    AI giúp mình với. Nhìn câu lệnh thì đúng mà
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

  3. #3
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi tuanvu199x Xem bài viết
    đây là chương trình đọc 1 tệp số nguyên và in ra màn hình.
    tệp có dạng 1 2 3 4 5 6 7...
    Khi chạy chương trình thì chỉ in ra vị trí thứ 2 trở đi là 2 3 4 5 6 7...
    Ai nhìn thấy lỗi giúp mình với.
    Code:
    #include<stdio.h>
    #include<conio.h>
    int main()
    {
    
    	int i=0,ch,dem = 0;
    	int a[100];
    
    	FILE *f;
    	f = fopen("vidu.txt","r");
    	do
    	{		
    	fscanf(f,"%d",&a[i]);
    	i++;
    	dem++;
    	}	
    	while ((ch =getc(f))!= EOF) ;
    	for (i=0;i<dem;i++)
    	printf ("%d",a[i]);
    	fclose(f);
    }
    thử lại cái này xem.code bạn làm làm trôi qa cái số 1.pà kon góp ý thêm

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    249

    uhm. tk bạn. Như thế thì được. nhưng sao while do lại không được nhi? sao nó lại bảo qua vị trí đầu tiên.
    Bôi đen để thấy chữ kí
    Có biết kí đâu mà có chữ kí chứ

  5. #5
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi tuanvu199x Xem bài viết
    uhm. tk bạn. Như thế thì được. nhưng sao while do lại không được nhi? sao nó lại bảo qua vị trí đầu tiên.
    Lí do là nếu ghi while trước thì:
    Hàm getc(f) dùng lấy 1 ký tự từ tệp do con trỏ tệp stream trỏ đến . Nếu thành công hàm trả về mã ASCII của ký tự đọc được . Nếu gặp lỗi hay gặp kết thúc tệp thì hàm trả về EOF.
    Ở đây..do kí tự đầu tiên là 1, nên bạn đã đọc qua số 1 đó, và ghán giá trị đó cho biến ch
    (debug sẽ thấy đầu tiên đọc được ch=49, 49 là mã ASCII của kí tự 1)

Các đề tài tương tự

  1. Bán nhà HXH Đinh Tiên Hoàng 106 m2 chỉ 6 tỷ
    Gửi bởi hoangtambds trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 29-08-2013, 02:10 PM
  2. Lập trình C In k số nguyên tố đầu tiên có tổng các chữ số là chắn trong mảng, lỗi chỉ kiểm tra được với số đầu tiên?
    Gửi bởi ncn1992vn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 23-11-2012, 10:20 PM
  3. Thứ tự ưu tiên các toán tử và ...???
    Gửi bởi whonghaiw trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 24-06-2012, 10:58 PM
  4. Bài tập C M bit đầu tiên biểu diễn N
    Gửi bởi zuro93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 01-12-2011, 10:16 AM
  5. Ngày hội mua nhà giá gốc lần đầu tiên tại Hà Nội
    Gửi bởi sir.alex trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-09-2011, 03:33 AM

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