PDA

View Full Version : thắc mắc ve I/O stream



cuti
13-09-2002, 13:37
Chào các bạn, các bạn có thể tư vấn cho mình về vấn đề này chứ: input file là record của 20 sinh viên mỗi sinh viên là 1 dòng đầu tiên là tên kế đó là 10 điễm ví dụ:
nguyễn văn A 8 10 7 8 5 5 4 5 6 7
nguyễn van B 6 4 6 4 3 7 5 8 9 4
......
yêu cầu outfile là sao chép lại đầu đề và tại dòng cuối cùng thêm vào điểm trung bình của 10 điễm trên
Mình tính trung bình nhưng output chỉ là 1 số, làm cách nào để xuất hiện điểm trung bình ở dòng cuối cùng
Cám ơn các bạn nhiều

danceswithwolves
15-09-2002, 12:23
dùng header fstream :


#include <fstream.h>
...
fstream myfile("filename.ext", ios::in | ios::out) // open file for input/output
...

bạn đọc các giá trị, tính trung bình rồi seek đến cuối file, ghi giá trị là được rồi.

cuti
15-09-2002, 21:02
bác ơi bác nói rõ hơn đi tất nhiên liên quan đến I O stream thì phải dùng header là fstream rồi. quan trọng là làm sao để cái ouput nó giống với input và cái trung bình ở vị trí cuối cùng của hàng đó:rolleyes:

danceswithwolves
16-09-2002, 10:42
trời, đọc từ file input rồi ghi vào file output thì giống y như copy file thôi mà, chỉ cần ghi thêm vào cuối hàng giá trị trung bình. Vậy đủ rõ chưa bạn ?

vuminhphan
16-09-2002, 13:37
hehe, wá rõ :-D

cuti
19-09-2002, 20:07
Bác giải thích thế thì dân tin học như tui cũng bó tay huống hồ gi normal user.Dù sao cũng cám ơn bác nhiều

danceswithwolves
20-09-2002, 17:05
Bài viết được gửi bởi cuti
Bác giải thích thế thì dân tin học như tui cũng bó tay huống hồ gi normal user.Dù sao cũng cám ơn bác nhiều

tớ online chủ yếu ngoài service nên ít dám post code lên vì không có điều kiện test code (chạy hay không). Mặt khác không nhớ một số (đông) tên hàm. Lần này post đại, mấy hàm in đậm tớ không nhớ tên, cậu là "dân tin học" thì thay thế dùm. Cảm ơn.



#include <iostream.h>
#include <fstream.h>

const MARKS_LENGTH = 9;

int main(int argc, char* argv[])
{
printf("Hello World!\n");
fstream fin("in.txt", ios::in);
fstream fout("out.txt", ios::out);

char* tmp = new char[50];
int currentMark = 1;
float sumOfMarks = 0;
while (!fin.eof())
{
if (currentMark <= MARKS_LENGTH)
{
fin >> tmp;
fout << tmp << " ";
if (doiduocvekieuso(tmp) // diem
{
sumOfMarks += doivekieuso(tmp);
currentMark++;
if (currentMark = MARKS_LENGTH) // diem cuoi cung
{
fout << sumOfMarks / MARKS_LENGTH << endl;
}
};
}
else // het mot record
{
currentMark = 1;
sumOfMarks = 0;
}
}
fin.close();
fout.close();
return 0;
}

danceswithwolves
21-09-2002, 09:47
dùng hàm atof()...

madcat
01-10-2002, 16:23
dung atof la qua du roi , nhung chuong trinh can co cac buoc kiem tra file input, chuan hoa ( standardize ) du lieu de khoi sai sot, hoac tien hanh ma hoa de an toan

sokhanhx
31-07-2006, 15:00
tôi mới học cũng không rõ

anh_hao_hoa
17-08-2006, 07:22
Hi,cho mình hỏi ké với,khi truy xuất file, trong VB tớ thấy có lệnh EOF để nhận biết kết thúc file,không biết trong C thì làm thế nào để biết nhỉ?tức là lệnh để biết kết thúc file đó,hùi trước có học mà giờ quên mất tiêu rồi.

lqkhoi
23-08-2006, 18:36
feof(FILE* fp).....................................