Announcement

Collapse
No announcement yet.

[C++]Cho em hỏi cách tương tác với file.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C++]Cho em hỏi cách tương tác với file.

    Tình hình là em định làm 1 chương trình nhỏ bằng C++, cần nhập dữ liệu từ 1 file chưa xác định tên (do người dùng nhập từ bàn phím) và ghi dữ liệu vào 1 file cũng chưa xác định tên. em tính dùng thư viện nhập xuất stdio.h, anh chị nào cho em xin cách thức và 1 số câu lệnh cần thiết trong việc này với ạ.
    do chưa có kiến thức về tương tác file nên em xin một hướng dẫn chi tiết với các câu lệnh cụ thể (không cần ví dụ đâu ạ).
    em xin cảm ơn.
    tiện đây cho em hỏi, em lỡ tay xóa mất cái shortcut của Visual Studio 2012 trên desktop rồi, giờ làm sao lấy ra cái khác đây ạ? em bỏ cả buổi trời tìm mà không thấy cái EXE của nó đâu cả.

  • #2
    Chào bạn, ko phải mình có ý gì nhưng cái này mình thấy google có cả đống sample về C/C++ mà . Bạn có thể tự search và chạy thử nha.

    Còn về nguyên tắc nhập xuất file rất dễ. Bạn có thể tưởng tựơng file là cái màn hình console của bạn ( cái màn hình đen đen mà bạn dùng hàm printf để ghi chữ lên nó ấy)
    Thì thay vì bạn ghi lên màn hình console ( dùng printf ), đọc từ màn hình console ( scanf) thì bạn có thể dùng fprintf để ghi dữ liệu lên file , fscanf để đọc dữ liệu từ file. ( cách nhớ: có chữ f ở đầu là viết tắt của từ file ). Nhưng nhớ khi làm việc với file phải mở và đóng file ở đầu và cuối chương trình.

    Quy trình làm việc với file

    B1: mở file cần thao tác , cho một con trỏ bám vào đầu file
    B2: từ con trỏ đó bạn di chuyển trên file để đọc/ ghi dữ liệu
    B3: đóng file

    Comment


    • #3
      Code C++:
      Code:
      #include<iostream>//cin, cout
      #include<fstream>//FILE
      #include<conio.h>//getch();
      using namespace std;
      int main()
      {
      /*----------------WRITE FILE------------------------*/	
      	char path[40];//đường dẫn file or file name
      	char c;
      	ofstream outf; //object for writing from a file
      	cout<<"Nhập tên file cần tạo :";
      	cin>>path;
      	outf.open(path);//create file
      	cout<<"\nNhập nội dung file: ";
      	while(1)//write file
      	{
      		c=getch();
      		cout<<c;
      		if(c==13) break;//enter ket thuc
      		outf<<c;
      	}
      	outf.close();//Close file;
      	cout<<"Nhap xong\n";
      /*-----------------READ FILE-------------------------*/
      	ifstream inf;//object for reading from a file
      	char ch;
      	inf.open(path);
      	if(!inf){
      			cout<<"khong the mo file";
      			return 1;
      		}
      	cout<<"noi dung file "<<path<<" :";
      	while(!inf.eof())//read file
      	{
      		inf>>ch;
      		if(inf.eof()) break;//tranh in  thua 1 ki tu
      		cout<<ch;
      	}
      	inf.close();//close file
      	cout<<"\n";
      	system("pause");
      	return 0;
      }
      Dùng thư viện của stdio.h của trong C:
      Code:
      #include<stdio.h>
      #include<conio.h>
      int main()
      {
      	/*-------------------WIRTE FILE----------------------*/
      	FILE *f;
      	char path[40];
      	char c;
      	printf("moi nhap path file: ");
      	scanf("%s",path);
      	f=fopen(path,"wt");// open for writing
      	printf("Nhap noi dung file: ");
      	while(1)//writing file
      	{
      		c=getch();
      		putchar(c);
      		if(c==13) break;
      		fprintf(f,"%c",c);
      	}
      	fclose(f);
      	/*-----------------READING--------------------*/
      	f=fopen(path,"rt");//open for reading
      	char ch;
      	printf("\nnoi dung file: ");
      	while(!feof(f))//reading
      	{
      		ch=fgetc(f);
      		putchar(ch);
      	}
      	fclose(f);//close file
      	getch();
      }
      Bạn có thể tham khảm tại: http://www.cprogramming.com/tutorial/cfileio.htmlhttp://www.cs.bu.edu/teaching/cs111/...-2000/file-io/
      Đường dân của visual studio 2010/2012 : C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE/devenv.exe or Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/devenv.exe, lưu ý Program Files (x86) đối với máy 64 bit

      Comment


      • #4
        cảm ơn anh Vũ nhiều ạ. vậy ra thư viện nhập xuất của C++ là iostream ạ? em cứ nghĩ C++ có 2 thư viện, xài cái nào cũng được, nhưng bây giờ chắc phải tập xài iostream rồi :embarrassed:
        @kengo14 cảm ơn bạn đã quan tâm vấn đề của mình, nhưng tại sao mình mở topic hỏi ở đây, xin nói rõ như vầy:
        thứ nhất: đa phần hướng dẫn trên mạng là sử dụng iostream, mình lạ câu lệnh.
        thứ 2: mình xin code cụ thể và công dụng để tương tác file, cái này không có.
        thứ 3: file mình mở ở đây là file chưa định danh trước (đây mới là vấn đề chính)
        cảm ơn bạn.

        Comment

        LHQC

        Collapse
        Working...
        X