Giúp bài tập C++ về ghi và đọc File

Mình mới tìm hiểu về mảng c++...Đây là đề bài :"Cho tập tin văn bản number2.in, dòng đầu tiên chứa số nguyên dương n (n
100), dòng thứ 2 chứa n số nguyên được phân cách nhau bằng 1 hay nhiều khoảng
trắng. Hãy định nghĩa các hàm để thực hiện các công việc sau và viết chương trình áp
dụng đọc n giá trị vào mảng "... Mình có viết 1 đoạn code mà thầy mình không chấm, bảo phải dùng ifstream và ofstream, mà phần đó thì thầy mình không dạy (???)... Đây là đoạn code của mình, mấy bạn chuyển sang dùng if/ofstream giúp mình với :'(
" void nhap(int a[], int n)
{

for(int i=0; i<n; i++)
{
printf("Nhap pt a[%d]: ",i);
scanf("%d", &a);
}
}
void ghifile(int a[],int n)
{
FILE *f;
f=fopen("number2.in","wt");
fprintf(f,"%d",n);
for(int i=0;i<n;i++)
fprintf(f,"%3d",a);
fclose(f);
}
void docfile(int a[],int &n)
{
FILE *f;
f=fopen("number2.in","rt");
fscanf(f,"%d",&n);
for(int i=0;i<n;i++)
fscanf(f,"%d",&a);
fclose(f);
}
void xuat(int a[],int n)
{
printf("\nKet Qua Doc File:\n\n");
cout<<"so n ma ban nhap la "<<n<<"\n";
for(int i=0;i<n;i++)
printf("%3d",a);

}
int main(int argc, char *argv[])
{
int a[100], n, sumchan, soNguyenTo[100], chiaK[100], k;
do
{
cout<<"moi nhap n ";
cin>>n;
}
while (n>100);
nhap(a,n);
ghifile(a,n);
docfile(a,n);
//cau a
cout<<"cau a \n";
xuat(a,n);
// Mo flie

FILE *f;
f = fopen("number2.out", "wt");"
 

taplamhacker

♥ Thanh Trâm ♥
Reply: Giúp mình vs mấy pro...

đọc n từ file
[AH]
Mã:
#include <fstream> 
ifstream Docn ("tên file");
Docn>>n;
[/AH]
để code chi tiết hơn bạn cho mình cái đề với ạ
 
Reply: Giúp mình vs mấy pro...

Cho tập tin văn bản number2.in, dòng đầu tiên chứa số nguyên dương n (n
100), dòng thứ 2 chứa n số nguyên được phân cách nhau bằng 1 hay nhiều khoảng
trắng. Hãy định nghĩa các hàm để thực hiện các công việc sau và viết chương trình áp
dụng:
a) Đọc n giá trị vào mảng (2 điểm).
b) Tính và xuất ra tổng các sô nguyên chẵn (2 điểm).
c) Tìm các số nguyên dương chia hết cho k (k là số nguyên dương được nhập từ bàn
phím) (2 điểm).
d) Tìm và xuất ra các số nguyên tố (nếu có). Ngược lại thì xuất thông báo không tìm
thấy (2 điểm).
e) Ghi tất cả kết quả thực hiện được vào tập tin number2.out (2 điểm)...
đề nè bạn... cảm ơn nha
 

taplamhacker

♥ Thanh Trâm ♥
Reply: Giúp mình vs mấy pro...

Cho tập tin văn bản number2.in, dòng đầu tiên chứa số nguyên dương n (n
100), dòng thứ 2 chứa n số nguyên được phân cách nhau bằng 1 hay nhiều khoảng
trắng. Hãy định nghĩa các hàm để thực hiện các công việc sau và viết chương trình áp
dụng:
a) Đọc n giá trị vào mảng (2 điểm).
b) Tính và xuất ra tổng các sô nguyên chẵn (2 điểm).
c) Tìm các số nguyên dương chia hết cho k (k là số nguyên dương được nhập từ bàn
phím) (2 điểm).
d) Tìm và xuất ra các số nguyên tố (nếu có). Ngược lại thì xuất thông báo không tìm
thấy (2 điểm).
e) Ghi tất cả kết quả thực hiện được vào tập tin number2.out (2 điểm)...
đề nè bạn... cảm ơn nha
lát sau quay lại nha bạn :)
 

taplamhacker

♥ Thanh Trâm ♥
trong đề có câu c d là hơi kì kì tìm xong rồi xuất ra mfinh hình rồi ghi vào file minhfk hiểu lắm
nên chỉ ghi vào file thôi
CODE
[AH]
Mã:
#include<iostream>
#include<fstream> 
using namespace std;
int checkb=0;
int checkc=0;
int snt(int n)
{
	if(n < 2)
		return 0;
	if(n ==2 || n ==3 )
		return 1;
	if(n %2 ==0 || n %3 ==0)
		return 0;
	for(int i = 5 ; i < n ; i +=2)
		if(n % i ==0)
			return 0;
	return 1;
}
int docn(ifstream &filein)
{
	int n;
	filein>>n;
	return n;
}
long tongchan(ifstream &filein, int a[], int n)
{
	long s=0;
	for(int i = 0 ; i < n ; i ++)
	{
		filein>>a[i];
		if(a[i] % 2 ==0)
			s+=a[i];
	}
	return s;
}
void chiak(int a[], int n, int k, int b[])
{
	for(int i = 0 ; i < n ; i ++)
		if(a[i] % k == 0)
			b[checkb++] = a[i];
}
void ktsnt(int a[], int n, int c[])
{
	for(int i = 0 ; i < n ; i ++)
		if(snt(a[i])== 1)
			c[checkc++] = a[i];
}
void ghifile(long tongsochan, int k,int b[], int c[], int n)
{
	ofstream fileout ("number2.out");
	if(! fileout.is_open())
 	{
		cout<<"Loi mo file"<<endl;
		return; 	
 	}
   	fileout<<"so n la : " << n << endl;
   	fileout<<"tong so chan la: "<<tongsochan<<endl;
   	if(checkb != 0)
	{
		fileout<<"so chia het cho " << k <<" la: ";
		for(int i = 0 ; i < checkb ; i ++)
			fileout<<" "<< b[i]<<" ";
		fileout<<endl;
	}
	else
		fileout<<"khong tim thay so chia het cho "<<k<<endl;
	if(checkc != 0)
	{
		fileout<<"so nguyen to la: ";
		for(int i = 0 ; i < checkc ; i ++)
			fileout<<" "<< c[i]<<" ";
		fileout<<endl;
	}
	else
		fileout<<"khong tim thay so nguyen to "<<k<<endl;
	fileout.close();
	
   	
}
int main()
{
	ifstream filein("number2.in");
	if(! filein.is_open())
    {
        return NULL;
    }
	int n;
	n=docn(filein);
	int a[n];
	int b[n];
	int c[n];
	long tongsochan=tongchan(filein,a,n);
	filein.close();
	cout<<"nhap so nguyen k: ";
	int k;
	cin>>k;
	chiak(a,n,k,b);
	ktsnt(a,n,c);
	ghifile(tongsochan,k,b,c,n);
}
[/AH]
 
Ủa cho mình hỏi là cái đề này thì mình nhập mảng trước rồi ghi vào file hay là tạo file rồi gán giá trị cho mảng???:rage1:
 

taplamhacker

♥ Thanh Trâm ♥
Ủa cho mình hỏi là cái đề này thì mình nhập mảng trước rồi ghi vào file hay là tạo file rồi gán giá trị cho mảng???:rage1:
đề bạn có ghi
Mã:
[COLOR=#141823][FONT=helvetica]Cho tập tin văn bản number2.in[/FONT][/COLOR]
nên mình đọc dữ liệu từ file đó và đưa vào mảng, xử lý trên mảng xong kết quả mình lưu vào file nha
 

taplamhacker

♥ Thanh Trâm ♥
Mình chép cái code của bạn chạy thử mà sao nó chạy rồi tự tắt liền??? Để mình xem lại thử...
thứ nhất thư mục lưu code phải có file number2.in như đề yêu cầu
thứ 2 khi chạy xong ngay tại thư mục đó sẽ có file number2.out chứa câu trả lời cho yêu cầu của đề
bạn check lại xem nhé
 
Mã:
#include <cstdlib>#include <iostream>
#include <fstream>


using namespace std;
void Nhap(int n)
{   
    cout<<"Nhap n: ";
    cin>>n;
    ofstream number2 ("number2.in");
    number2 << " n="<<n<<"\n";
    for(int i=0;i<n;i++)
    {
            number2 << i;
            number2 << "\n";
    }
    number2.close();


}


    
int main(int argc, char *argv[])
{
    int n;
    Nhap(n);
    system("PAUSE");
    return EXIT_SUCCESS;
}
Đây là cái code tạo file number2.in và ghi n vào file đó... Cho mình hỏi bây h ghi code gì nữa để mở file này ra và chép giá trị n trong file này vào mảng??? Giúp mình với, rối quá :phamay::phamay::phamay:
 

taplamhacker

♥ Thanh Trâm ♥
Mã:
#include <cstdlib>#include <iostream>
#include <fstream>


using namespace std;
void Nhap(int n)
{   
    cout<<"Nhap n: ";
    cin>>n;
    ofstream number2 ("number2.in");
    number2 << " n="<<n<<"\n";
    for(int i=0;i<n;i++)
    {
            number2 << i;
            number2 << "\n";
    }
    number2.close();


}


    
int main(int argc, char *argv[])
{
    int n;
    Nhap(n);
    system("PAUSE");
    return EXIT_SUCCESS;
}
Đây là cái code tạo file number2.in và ghi n vào file đó... Cho mình hỏi bây h ghi code gì nữa để mở file này ra và chép giá trị n trong file này vào mảng??? Giúp mình với, rối quá :phamay::phamay::phamay:
code này của bạn
nhiệm vụ là để ập
nhập vào 1 số n và ghi vào file 1 dãy số từ 0 tới n-1
vd n= 5;
trong file sẽ có
5
0
1
2
3
4
còn đoạn code trên của mình sẽ làm:
là đọc file đó mà thực hiện yêu cầu của bài
mình có 1 thắc mắc khá là mâu thuẩn
đề bài của bạn bảo là cho file number2.in
đã cho thì tại sao lại tạo ra file đó nữa
nếu thực sự phải tạo ra thì bạn chạy 2 code riêng biệt chung 1 foder
code của bạn chạy trước, để có file
code của mình chạy sau để thực hiện yêu cầu
việc ghép 2 chương trình(toàn hàm) lại thì bạn chỉnh sửa hàm main + thêm thư viện vào thôi
bạn có thể thử tự làm xem
nếu vẫn k dc bạn gửi teamviewer lên mình sẽ hướng dẫn trược tiếp cho bạn
 
Cái tạo file thì mình làm dc , còn cái đọc file và ghi dữ liệu vào mảng mình làm hôm qua tới h mình làm mà toàn bị lỗi :(:)(:)(( Bạn ráng giúp mình nha, cảm ơn nhiều nhiều...
 

Ngọc Huyền1

Công Chúa Nhỏ
Cái tạo file thì mình làm dc , còn cái đọc file và ghi dữ liệu vào mảng mình làm hôm qua tới h mình làm mà toàn bị lỗi :(:)(:)(( Bạn ráng giúp mình nha, cảm ơn nhiều nhiều...

Trên đầu em yêu đưa cho Code đọc ghi File rồi .
Còn muốn gì nữa :D
 

taplamhacker

♥ Thanh Trâm ♥
Cái tạo file thì mình làm dc , còn cái đọc file và ghi dữ liệu vào mảng mình làm hôm qua tới h mình làm mà toàn bị lỗi :(:)(:)(( Bạn ráng giúp mình nha, cảm ơn nhiều nhiều...
:ucche: bạn đã thử code của mình chưa ?? bạn đã xem kết quả sau khi chạy code chưa ??
 

Thống kê

Chủ đề
102,787
Bài viết
470,610
Thành viên
340,593
Thành viên mới nhất
winspire
Top