01/10/2018, 12:19

Bài tập C về tệp

Mình gặp vấn đề với bài tập C ở đây,
Đề bài đơn giản chỉ là in vào file số từ 1 đến n .
Nhưng hàm fwrite không rõ như thế nào, mình in như thế này lúc bật file ra chỉ hiện ra toàn ô vuông ??
Cao thủ nào chỉ hộ mình lỗi với ạ ?

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

#define file_name "Lab09_integer.c"

int main()
{
	int i,n;
	FILE *fp;
	
	int tryagain=0;
	int tieptuc=0;
	scanf("%d", &n);
	fp = fopen(file_name,"w");
	
	while (fp == NULL)
	{
		tryagain++;
		if (tryagain<10)
		{
			printf("Khong the mo ten file.
");
			printf("Dang thu lai,vui long doi trong 3s...
");
			Sleep(3000);
			fp = fopen(file_name,"w");
		}
		else 
		{
			printf("Thu lai khong thanh cong.
");
			tieptuc=1;
			break;
		}
	}
	
	if (tieptuc==1) printf("Chuong trinh se dung lai.
");
	else
	{
		for(i=1;i<n;i++)
			fwrite(&i,sizeof(int),1,fp);
		fclose(fp);
	}
	
	return 0;
}
Khoa NTA viết 14:34 ngày 01/10/2018

Thì bạn kêu nó ghi vào 1 số thì nó ghi vào 1 số thôi. Chừng nào bạn kêu nó ghi chuỗi (ký tự) thì nó mới ghi chuỗi (ký tự) chứ.

Để dễ hiểu, 1 là số và '1' là ký tự. Chuyển số sang ký tự rồi ghi vào. Và nhớ là nên ghi thêm ký tự xuống dòng hoặc khoảng trắng để khỏi phải dính chùm.

Có lẽ bạn sẽ dễ làm quen với fprintf hơn. Xem tại đây.

HelloWorld viết 14:23 ngày 01/10/2018

bạn xem lại ghi file văn bản và file nhị phân khác nhau ntn

Bài liên quan
0