Chủ đề: ghi lên đầu tập tin
-
20-06-2012, 11:53 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
ghi lên đầu tập tin
em muốn ghi biến dem lên đầu file "ketqua.out.txt" thì làm thế nào ạ?
em đọc tài liệu bảo dùng hàm fseek (); hay rewind(f); nhưng vẫn không ghi lên đầu tệp mà vẫn ở cuối tệp +_+. ví dụ bài này ạ:
Mã:#include <iostream.h> #include <conio.h> #include <stdio.h> #include <fstream.h> int a[100]; int daySo[100]; int k, n,dem=0; int kiemTra(int k) { int tong =0; for (int i = 1; i<=n; i++) tong = tong + a[i]*daySo[i]; if (tong ==k) return 1; return 0; } void ketQua() { if (kiemTra(k)) { dem++; for (int i=1; i<=n; i++) if (a[i]==1) cout<<daySo[i]<<" "; cout<<endl; } } void nhiPhan(int m) { for (int i=0; i<=1; i++) { a[m]=i; if (m==n) ketQua(); else nhiPhan(m+1); } } void nhapDuLieu() { cin>>n>>k; for (int i=1; i<=n; i++) cin>>daySo[i]; } main() { freopen("dayso.in.txt","r",stdin); freopen("ketqua.out.txt","w",stdout); nhapDuLieu();FILE *f1;cout<<" "; nhiPhan(1); f1=fopen("ketqua.out.txt","a"); rewind(f1); fprintf(f1," So cac cap tim duoc la: %d",dem); fclose(f1); }
Mã:20 30 15 35 10 15 25 5 20 25 5 15 30 5 10 35 5 10 15 20 So cac cap tim duoc la: 7
View more random threads:
- giải thích kiểu con trỏ
- Tạo menu như thế nào nhỉ??
- Hàm tạo sao chép hoạt động như thế nào ?
- Giúp Em sửa lỗi no instance of overloaded function
- thắc mắc về mảng
- viết hàm tính số lớn nhất trong mảng
- cần làm giúp mminhf bài tập này
- [ Solved ]Biến toàn cục và biến cục bộ
- thắc mắc câu lệnh getch()
- Giúp em về hàm cộng và trừ hai đa thức
-
20-06-2012, 03:05 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mọi người ơi giúp em với [IMG]images/smilies/21.gif[/IMG][IMG]images/smilies/21.gif[/IMG][IMG]images/smilies/21.gif[/IMG]
-
20-06-2012, 03:35 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi maitrung
f1=fopen("ketqua.out.txt","a"); chỗ này bạn dùng "a" thì nó chỉ in vao cuối thôi!
đơn giản hơn bạn viết cái dem trước rồi viết cái gigi đó sau thì khỏi nghĩ ngợi!
-
20-06-2012, 03:44 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cách 1: Bạn read cả file ra 1 cái buffer, xóa file đó đi, chỉnh sửa chèn đè xóa trên buffer đó. Tạo ra 1 file như cũ, ghi buffer đó vào file.
Cách 2: Học sử dụng mấy hàm:
Linux: sử dụng các hàm open(), read(), write, close(), lseek(), fcntl() (dùng lock file)
Windows: sử dụng các hàm open(), read(), write(), _lseek(), _locking()
-
20-06-2012, 03:46 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@thai_thinh:
nói thế thì tớ không hỏi làm gì vì bài này tớ làm nó in ra hết các cách nó mới đếm tổng số cách nên biến dem ra sau mà yêu cầu bài thì phải hiển thị ở đầu tệp ??? bạn thử sửa luôn hộ cái bài này cho tớ với
-
20-06-2012, 03:49 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@namdq2k : có thể cho tớ cái code cho cụ thể hơn không? tớ không hiểu, tớ làm trên window trên Dev.C++- 4.9.9.2
-
22-06-2012, 08:19 AM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
[IMG]images/smilies/clap_grin.gif[/IMG] cám ơn bạn nha @thai_thinh [IMG]images/smilies/biggrin.png[/IMG] mình sẽ tham khảo.(cách thứ 2 đơn giản thật mà còn chuẩn nữa ^^)
-
22-06-2012, 07:52 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi maitrung
Mã:void ketQua(){ if (kiemTra(k)) { for (int i=1; i<=n; i++) if (a[i]==1) cout<<daySo[i]<<" "; cout<<endl; }}void Dem(int m){ for (int i=0; i<=1; i++) { a[m]=i; if (m==n) dem++; } }
Ý tưởng của cách này là! bạn viết một hàm đếm riêng. rồi in biến đếm trước... đừng nên viết phụ thuộc dễ làm rối trí... hii
Cách 2: (đơn giản hơn)
Mã:main(){ freopen("dayso.in.txt","r",stdin); freopen("ketqua.out.txt","w",stdout); nhapDuLieu();FILE *f1;cout<<" "; fprintf(f1," So cac cap tim duoc la: ");//chỗ này cho nhiêu khoảng trắng để đảm bảo in đủ số! nhiPhan(1); f1=fopen("ketqua.out.txt","r+");//Lưu ý chỗ này không phải là "a" nữa rewind(f1); fprintf(f1," So cac cap tim duoc la: %d",dem); fclose(f1);}
Cách 3: là bạn đọc hết file lại rồi xóa file đi in dem rồi in lại file;
VD:
Mã:#include <stdio.h>#include <conio.h>#define MAX 100void Luu(char s[][MAX],int &n,char tenf[]){ n = 0;//cho chắc ăn. FILE* f = fopen(tenf,"r"); if(!f)return; while(!feof(f)) fgets(s[n++],MAX,f); fclose(f); } void Ghi(char s[][MAX],int n,char tenf[]){ FILE *f = fopen(tenf,"a"); int i = 0; while(i<n) fprintf(f,"%s",s[i++]); fclose(f);} void main(){ char s[MAX][MAX]; int n; Luu(s,n,"output.txt"); FILE* f = fopen("output.txt","w"); fprintf(f,"So cac cap tim duoc la: 7 "); fclose(f); Ghi(s,n,"output.txt");}
còn nhiều code hay hơn![IMG]images/smilies/biggrin.png[/IMG]
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...