Đọc và ghi file text trong C++

ifstream

Trong C++ việc đọc và ghi file thường dùng để đưa các bài toán ở dạng đầu vào và xuất ra kết quả. Điều này giúp cho người ta dễ dàng kiểm tra xem chương trình của bạn có thực sự đúng không khi cho chương trình chạy với nhiều đầu vào và kiểm tra các kết quả ở đầu ra chương trình có đúng với kết quả chuẩn. Bài viết này sẽ trình bày các vấn đề về đọc và ghi file với các ký tự ASCII sử dụng thư viện ifstream.

1. Sử dụng ofstream trong thư việ fstream để ghi file

–  Cách ghi ra file sử dụng thư viện fstream cũng tương đối đơn giản, gần giống với cout<< trong c++.

–  Dưới đây là đoạn code đơn giản: tạo ra một file .txt rồi ghi vào đó một đoạn text mà mình thích.

#include <iostream> 
#include <fstream> 
#include <iostream> 
using namespace std;

int main()
{
    ofstream FileDemo ("File Demo.txt");
    FileDemo<<"Day la file demo su dung cach doc va ghi file su dung fstream";
    FileDemo.close();
    return 0;
}

Khi chạy đoạn chương trình trên, chương trình sẽ tạo ra một file tên File Demo.txt nằm trong cùng thư mục với project chứa code của bạn. Khi mở file này lên, bạn sẽ thấy đoạn text mà mình muốn ghi trong đó.

–  Và đây là một ví dụ về ghi ra các số chẳn từ 1 đến 1000 vào file “So Chan.txt”

#include <iostream> 
#include <fstream> 
#include <iostream> 
using namespace std;

int main()
{
    ofstream SoChan ("So Chan.txt");
    SoChan<<"Day so chan tu 1 -> 1000 \n";
    for(int a = 1; a <= 1000; a++)
    {
        if(a%2 == 0)
        {
            SoChan<<a;
            SoChan<<"\n";
        }
    }
    SoChan.close();
    return 0;
}

File “So Chan.txt ” sau khi chạy chương trình trên sẽ như hình bên dưới.

image

– Và tiếp tục một ví dụ ghi ra file “Ghi So Chan Le.txt” các số chẵn và lẽ từ 0 -> 100 (lưu ý: ví dụ này được update sau theo yêu cầu một số bạn nên nên code không có màu).

#include <iostream>
#include <fstream>
#include <iostream>

using namespace std;

void ghiSoChan(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo<<"Day so chan tu 1 -> 100 \n";
    for(int a = 1; a <= 100; a++)
    {
        if(a%2 == 0)
        {
            dem ++;
            GhiSo<<a;
            if(dem % 5 == 0)
            {
                   GhiSo<<"\n";
            }
            if(dem % 5 != 0)
            {
                   GhiSo<<"\t";
            }
        }
    }
    cout<<"\n So Chan: "<<dem;
}

void ghiSoLe(ofstream &GhiSo)
{
    int dem = 0;
    GhiSo<<"\nDay so le tu 1 -> 100 \n";
    for(int i = 1; i <= 100; i++)
    {
        if(i%2 != 0)
        {
            dem ++;
            GhiSo<<i;
            if(dem % 5 == 0)
            {
                   GhiSo<<"\n";
            }
            if(dem % 5 != 0)
            {
                   GhiSo<<"\t";
            }
        }
    }
    cout<<"\n So Le: "<<dem;
}

int main()
{

    ofstream GhiSo("Ghi So Chan Le.txt");
    ghiSoChan(GhiSo);
    ghiSoLe(GhiSo);
    GhiSo<<"\n ThanhCuong.wordpress.com";
    GhiSo.close();
    system("pause");
    return 0;
}

Kết quả file “Ghi So Chan Le.txt” thu được là:

image

–  Như vậy cách ghi ra một file sử dụng thư viện fstream trong C++ là tương đối dễ dàng đúng hông? Open-mouthed smile Open-mouthed smile Open-mouthed smile

2. Sử dụng fstream trong C++ để dữ liệu đọc file

–  Ở trên ta ghi ra một file “So Chan.txt” rồi, giờ ta thử đọc file đó trong C++ xem sao:

#include <iostream> 
#include <fstream> 
#include <iostream> 
using namespace std;

int main()
{
    int a[501];
    ifstream SoChan ("So Chan.txt");
    if(! SoChan.is_open())
    {
        cout<<"Khong the mo file.\n";
        return 0;
    }
    else {
        for(int i = 1; i <= 500; i++)
        {
            SoChan>>a[i];
        }
    }
    for(int i =1; i <= 500; i++)
    {
        cout<<a[i]<<" ";
    }
    SoChan.close();
    system("pause");
    return 0;
}

Và kết quả là:

image

–  Và tiếp một ví dụ nữa cho các bạn hiểu hơn về các đọc file. Ví dụ này trình bày cách đọc một ma trận như hình bên dưới từ file txt.

image

Và code chương trình như sau:

#include <iostream> 
#include <fstream> 
#include <iostream> 
using namespace std;

int main()
{
    int a[10][10];
    int n;
    ifstream MaTran ("Ma Tran.txt");
    if(! MaTran.is_open())
    {
        cout<<"Khong the mo file.\n";
        return 0;
    }
    else {
        MaTran>>n;
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < n; j++)
            {
                MaTran>>a[i][j];
            }
        }
    }

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout<<a[i][j];
            cout<<" ";
        }
        cout<<"\n";
    }
    MaTran.close();
    system("pause");
    return 0;
}

–  Và ví dụ tiếp theo, đọc một file text bằng fstream với C++.

#include<iostream>

#include<fstream>

using namespace std; int main() { ifstream stream1(“Text.txt”); char a[80]; if(!stream1) { cout << “Khong the mo file” << endl; } else { while(!stream1.eof()) { stream1 >> a; cout << a<<” “; } } system(“pause”); return(0); }

image

–  Như vậy qua 3 ví dụ về cách ghi ra file trong C++. Chúng ta thấy rằng thư viện fstream rất hữu  ích,  những kiến thức về thư viện này nên tìm hiểu thêm tại cplusplus.com .

– Source code tìm một chuỗi trong file txt trên C++. Tải về source code bài này tại mediafire.

#include <iostream>
#include <fstream>
#include <string>
// thanhcuong.wordpress.com using namespace std;

int search();

int main (void)
{
    search();
    system("pause");
    return 0;
}

int search()
{
    fstream checkStream;
    string searchString;
    string lineOfText;

    cout << "Nhap vao chuoi can tim: ";
    getline(cin, searchString);

    checkStream.open("student.txt", ios::in);

    while (getline(checkStream, lineOfText))
    {
        getline(checkStream, lineOfText);
        //if (checkStream.eof()) break; if (!checkStream) break;
        if (lineOfText.find(searchString, 0) != string::npos)
        {
            cout<<"Tim thay chuoi: \""<<searchString<<"\" trong file."<<endl;    
            return 1;
            break;
        }
    }
    checkStream.close();
    cout << "Khong tim thay chuoi: "<<searchString<<" trong file." << endl;
    return 0;
}

– Source code đọc văn bản hiển thị trên chế độ text từ file “Text.txt”trên C++, và sử dụng được các phím lên xuống, sang trái sang phải. Tại source code bài này tại mediafire.

#include<iostream>
#include<fstream>
#include <string.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>

const int ESCAPE=27;
const int UP = 72;
const int DOWN = 80;
const int RIGHT = 77;
const int LEFT = 75;

using namespace std; 

void curPos(int x, int y) {
  HANDLE hStdout;
  CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
  hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(hStdout, &csbiInfo);
  csbiInfo.dwCursorPosition.X=x;
  csbiInfo.dwCursorPosition.Y=y;
  SetConsoleCursorPosition(hStdout, csbiInfo.dwCursorPosition);
} 

int main()
{
        int X;        
        int Y;        
        CONSOLE_SCREEN_BUFFER_INFO consoleinfo;
        RECT rect;
        HWND hwnd;
        ifstream stream1("Text.txt");
        char a[100];
        int c;
        if(!stream1)
        {
            cout << "Khong the mo file" << endl;
        }        
        else {
            while(!stream1.eof())
            {
                stream1 >> a;
                cout << a<<" ";

            }
        }

        while((c = getch()) != ESCAPE)
        {   
            GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &consoleinfo);
            X = consoleinfo.dwCursorPosition.X;
            Y = consoleinfo.dwCursorPosition.Y;
            if(c == LEFT)
            {
               curPos(X-1,Y);
            }
            if(c == RIGHT)
            {
               curPos(X+1,Y);               
            }
            if(c == UP)
            {
               curPos(X,Y-1);
            }
            if(c == DOWN)
            {
               curPos(X,Y+1);
            }
            if(c == 71)
            {
               curPos(0,Y);              
            }
            if(c == 79)
            { 
              curPos(79,Y);               
            }
        }
        return(0);
}

3. Một vài lưu ý

– Tất cả các ví dụ trên IDE DevC++ có thể tải về tại sourceforge.

–  Trong một số bài tập về tin học người ta thường yêu cầu ghi ra file “.output” và đọc file “.input”, nếu gặp trường hợp đó, bạn làm tương tự như đối với file .txt. Tức là thay đổi tên file ghi ra là “.output” và file đọc vào là “.input”.

–  Mọi thắc mắc xin để lại comment bên dưới bài viết này. Mình sẽ trả lời trong thời gian sớm nhất.

Và một điều quan trọng hơn:

Click vào đây để Download source code demo các ví dụ đọc và ghi bằng thư viện fstream trong C++

–   Tham khảo thêm bài viết Đọc & Ghi file trong C với ví dụ là các bài thi thực hành Tin Học Đại Cương.

About thanhcuong1990

Handsome and talent!! ^^
This entry was posted in C++ and tagged , , . Bookmark the permalink.

293 Responses to Đọc và ghi file text trong C++

  1. Mai Kim Thành says:

    Bạn có thể giúp mình cái này không.
    Mình có một file “tudien.txt” có nội dung từ và nghĩa của từ điển như sau:
    hello (n) chao, xin chao
    book (n) sach
    man (n) nguoi, con nguoi
    Mình đang làm một chương trình dò từ điển Anh – Việt bằng cây nhị phân tìm kiếm
    Làm sao để chương trình lấy riêng ra từ anh văn và nghĩa bắt đầu từ dấu ( đến hết)
    Từ anh văn giới hạn là 15 kí tự, nghĩa là 100 kí tự.
    Và người dùng muốn thêm từ mới như thế nào.
    Bạn giúp dùm mình

    • Bạn chưa nói là bạn viết chương trình bằng ngôn ngữ nào (C#, C++, …)? Theo mình từ điển thì nên sử dụng XML (eXtensible Markup Language). Vì các thẻ trong XML rất tiện dụng, có thể định nghĩa theo từng tag riêng. Rất phù hợp.

  2. genuis says:

    cám ơn bạn về những kiến thức và code cơ bản này!Bạn đã giúp mình nắm cơ bản(do mình mới học tìm hiểu phần này thôi) và có thể ứng dụng vào các bài tập khó hơn!Thanks bạn nhiều nha!!!

  3. Noline says:

    Bạn cho mình code đọc 1 dòng bất kỳ từ file .txt được không!

    • Mình đã cung cấp link download source code ở cuối bài viết rồi. Mình gọp chung vào bạn down về rồi giải nén ra sẽ có trong đó.

  4. Mai Kim Thành says:

    mình dùng C++ bạn à.
    có code để xóa nội dung trong file txt không bạn

  5. dong says:

    cho mình hỏi: khi mình cop đoạn File Demo vào chạy thử trong một file riêng của c++ thì nó nói là chưa có file nguồn vậy làm thế nào để cho nó chạy được.
    còn khi mình cop vào một file của project nó lại ghi là error 1.

    • Đoạn code mà mình viết cần phải có file để cho nó đọc. Bạn chỉ cần copy file txt đó vào cùng thư mục với project của bạn là chạy được thôi. Tên file txt đó thì có trong đoạn code rồi. Còn file đó có đính kèm trong file rar mình post trên blog.

  6. Duong says:

    Bạn có thể giúp mình đọc và ghi file XML dùng C++ được không?

    Cảm ơn bạn nhiều!

  7. manh says:

    thank ban rat nhieu nha minh dang hoc phan nay nhung chua hieu lam nho co ban ma minh da hieu duoc phan nay rui

  8. luong says:

    bạn cho mình hỏi:
    giờ mình có yêu cầu như thế này nhờ bạn chỉ mình cách lưu file và dọc file giùm, cụ thể:
    Lưu dạng danh bạ điện thoại di động: danh sách gồm nhìu người cần liên lạc, mỗi người có thể có hơn một số điện thoại, vậy bạn có thể cỉ mình cách lưu với cấu trúc như thế nào cho phù hợp không, rùi đọc nó lên nữa
    Cảm ơn bạn trước!

  9. Nguyễn Hải Đăng says:

    Em có 1 bài, đọc file bằng C++ từ file *txt hay *doc, nội dung như sau:
    Đọc file txt hay doc có sẵn, và in ra dữ liệu dạng ma trận, 6 cột, n hàng, trong đó, 3 cột đầu là loại int, cột tiếp theo là long, cột 5 là fload, cột 6 là double!
    anh giúp em được không?
    e đang cần, rất gấp

    • Ở phía trên mình đã viết Demo một ví dụ về đọc ma trận rồi. Nếu bạn cần có thể tham khảo đoạn code dưới đây: Click vào đây để download đoạn code demo

      #include
      #include
      #include

      using namespace std;

      int main()
      {
      double a[50][50]; // dung kieu double de luu cac kieu con lai
      int n, m;
      ifstream MaTran ("Ma Tran.txt");
      if(! MaTran.is_open())
      {
      cout<>n; // So cot cua ma tran
      MaTran>>m; // So hang cua ma tran.
      for(int i = 0; i < m; i++)
      {
      for(int j = 0; j >a[i][j];
      }
      }
      }

      for(int i = 0; i < m; i++)
      {
      for(int j = 0; j < n; j++)
      {
      cout<<a[i][j];
      cout<<"\t";
      }
      cout<<"\n";
      }

      MaTran.close();
      system("pause");
      return 0;
      }

  10. hung says:

    bạn có thể chỉ cho mình cách nối file đc k?
    nghĩa là nếu mình có 1 hàm ghi ra file rồi. sau đó mình có 1 hàm khác muốn ghi tiếp vào file đó thì làm thê nào?

  11. tomasino says:

    Mình mới làm quen nên chưa hiểu lắm, mình đang cần tạo ra 1 file .txt mà có chứa ma trận sau để tìm chu trình Euler:
    0 1 1 0 0 0
    1 0 1 1 1 0
    1 1 0 1 0 1
    0 1 1 0 0 0
    0 1 0 0 0 1
    0 0 1 0 1 0

    cho mình đoạn code đưa vào chương trình chính để đọc file .txt này luôn.
    Hoặc bạn có code bài tập ví dụ nào về viết chương trình tìm chu trình Euler trong dev C++ thì cho mình thì càng tốt, cảm ơn bạn rất nhiều. Mong bạn hồi âm sớm, 2 ngày nữa mình nộp bài rồi. hix

  12. tomasino says:

    Bạn cho mình code chương trình tìm chu trình Euler hoàn chỉnh (của 1 bài tập cụ thể) trong dev C++ đi, mình rất cần. Cảm ơn bạn nhiều lắm.
    Code bạn gởi cho mình khi đưa vào dev C++ chạy thì báo lỗi không chạy được, các bài tập của mình cũng ko chạy được, nó đều báo lỗi thế này nè:
    32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.
    35 E:\HOC TAP\Toan\TOAN ROI RAC 2\LyThuyetDoThi\Euler va Hamilton\Chu trinh Euler.cpp `main’ must return `int’
    E:\HOC TAP\Toan\TOAN ROI RAC 2\LyThuyetDoThi\Euler va Hamilton\Makefile.win [Build Error] [“Chu trinh Euler.o”] Error 1

  13. N----hee says:

    Anh cho em hỏi về bài toán Tháp Hà Nội với kết quả được ghi ra file.Em dùng đệ quy nhưng không biết làm cách nào để đưa vào file ghi! Cảm ơn anh nhiều!

  14. huongnike says:

    anh oi,cho em hoi,khi em da tao ra 1 file .txt roi,
    em muon tao ra 1 ham voi chuc nang tim kiem ,vay em lam the nao de lay du lieu trong file.txt cua em de tim kiem
    khi tao va in file em cung su dung ifstream ,va ofstream
    fstream file;
    file.open(“hanghoa.txt”,ios::in);
    em su dung 2 dong tren de lay du lieu trong file hanghoa.txt de thuc hien chuc nang tim kiem ,ko biet la co dung ko ha ah?

    • 2 dòng code trên của bạn là đúng rồi đó. Em có thể tham khảo 1 đoạn code mình viết về tìm kiếm một chuỗi trong file .txt


      #include
      #include
      #include
      // thanhcuong.wordpress.com
      using namespace std;

      int search();

      int main (void)
      {
      search();
      system("pause");
      return 0;
      }

      int search()
      {
      fstream checkStream;
      string searchString;
      string lineOfText;

      cout << "Nhap vao chuoi can tim: ";
      getline(cin, searchString);

      checkStream.open("student.txt", ios::in);

      while (getline(checkStream, lineOfText))
      {
      getline(checkStream, lineOfText);
      //if (checkStream.eof()) break;
      if (!checkStream) break;
      if (lineOfText.find(searchString, 0) != string::npos)
      {
      cout<<"Tim thay chuoi: \""<<searchString<<"\" trong file."<<endl;
      return 1;
      break;
      }
      }
      checkStream.close();
      cout << "Khong tim thay chuoi: "<<searchString<<" trong file." << endl;
      return 0;
      }


      Download đoạn code trên viết trên DevC++

  15. huongnike says:

    anh ơi,bọn em mới học C++ thôi
    code trên của anh có nhiều chỗ em ko hiểu,vì em chưa học mà
    bài tập của em là :Viết chương trình quản lý cửa hàng. Thông tin mặt hàng gồm có: mã hàng hóa, tên hàng hóa, giá, năm sản xuất, chủng loại.
    • Nhập thông tin hàng hóa
    • Lưu các thông tin vừa nhập vào một file text. Mỗi dòng là thuộc tính của hàng hóa
    • Đọc thông tin từ file đã lưu và hiển thị thông tin lên màn hình
    • Tìm kiếm thông tin thiết bị theo mã, tên hàng hóa. Đưa ra màn hình tổng giá trị các mặt hàng trong cửa hàng, và các mặt hàng được sản xuất trước năm 2000.
    Sau đây là code em làm
    #include
    #include
    #include
    #include
    #include
    #include
    class hanghoa
    {
    private:
    char mahang[30];
    char tenhang[30];
    int gia,i,n;
    int namsx;
    char chungloai[30];
    hanghoa *hanghoa;
    public:
    hanghoa();
    void nhaptt();
    void luutt();
    void intt();
    void timtheoma();
    void timtheotenhang();

    };
    hanghoa::hanghoa()
    { n=0;
    //tenhang=Null;
    gia=0.0 ;
    }

    void hanghoa::nhaptt()
    {
    cout<>n;
    for(i=0;i<n;i++)
    {cout<<"\n Nhap vao ma cua hang hoa: ";
    gets(mahang);
    cout<<"\n Nhap vao ten cua hang hoa: ";
    gets(tenhang);
    cout<>gia;
    cout<>namsx;
    cout<<"\n Nhap vao chung loai: ";
    gets(chungloai);
    }
    //luutt(mahang,tenhang,gia,namsx,chungloai);
    }
    void hanghoa::luutt()
    {
    fstream f("hanghoa.txt",ios::in|ios::out);
    for(i=0;i<n;i++)
    f<mahang<<"\n";
    f<tenhang<<"\n";
    f<gia<<"\n";
    f<namsx<<"\n";
    f<chungloai<<"\n";
    f.close();

    }
    void hanghoa::intt()
    {
    ifstream f("hanghoa.txt");
    char h[200];
    if(!f)
    {
    cout<<"\n Khong mo duoc File";
    }
    else
    {
    if(!f.eof())
    for(i=0;i>gia>>namsx;
    //fflush(stdin);
    //f.getline(chungloai,25);
    f.ignore();
    cout<<"\n Ma mat hang:"<<mahang;
    cout<<"\n Ten mat hang:"<<tenhang;
    cout<<"\n Gia mat hang:"<<gia;
    cout<<"\n Nam san xuat:"<<namsx;
    cout<<"\n Thuoc chung loai:"<<chungloai;

    }
    f.close();

    }
    void hanghoa::timtheoma() //Tim kiem theo ma hang
    { char *ma,dem=0;
    fstream file;
    file.open("hanghoa.txt",ios::in);

    cout<<endl<<endl<<" Nhap ma hang can tim kiem: " ;
    gets(ma);
    ma=new char [100];
    for(int i=0;i<n;i++)
    { if(hanghoa[i].mahang==ma&&hanghoa[i].namsx<2000)
    { cout<<endl<<" Hang can tim co trong CSDL" ;
    cout<<endl<<" Thong tin ve san pham: ";
    cout<<endl<<" Don gia: "<<hanghoa[i].gia;
    dem++;
    }
    }
    if(dem==0)
    cout<<endl<<" Hang can tim khong co trong CSDL" ;

    }
    void hanghoa::timtheotenhang() //Tim kiem theo ma hang
    { char *ten;
    int kt=0;
    fstream file;
    file.open("hanghoa.txt",ios::in);

    cout<<endl<<endl<<" Nhap ten hang can tim kiem: " ;
    gets(ten);
    ten =new char[100];
    for(int i=0;i<n;i++)
    if(strcmpi(hanghoa[i].tenhang,ten)==0&&hanghoa[i].namsx<2000)
    { cout<<endl<<" Hang can tim co trong CSDL" ;
    cout<<endl<<" Thong tin ve san pham: ";
    //cout<<endl<<" Ma hang: " <<hanghoa[i].mahang;
    //cout<<endl<<" Ten hang: "<<hanghoa[i].tenhang;
    cout<<endl<<" Don gia: "<<hanghoa[i].gia;
    kt=1;
    }

    if(kt==0)
    cout<<endl<<" Hang can tim khong co trong CSDL" ;

    }

    void main()
    {
    clrscr();
    hanghoa h;
    h.nhaptt();
    h.luutt();
    h.intt();
    h.timtheoma();
    h.timtheotenhang();
    getch();
    }

    ở void timtheoma va timtheohang khi chay rieng ơ mục khác ,túc là em ko đọc dữ liệu trong file thì nó chạy rất ngon,nhưng khi em ghép vói phần nhập và luutt và intt thì no chạy bị sai kết quả,và phần intt của em cũng bị lỗi nữa,nó ko in được thuộc tính cuối cung
    Anh giúp em vói,em tìm mọi cách ròi mà ko dudoc,thank anh nhiều

  16. dung says:

    cho em hỏi là trong em có thể ghi 1 hàm vào file k ạ.ví dụ như em muốn ghi hàm a[i].xuat(); vào 1 tệp HD.txt ở class HOADON vs a[i]xuat() là 1 hàm ở trong class MATHANG đc gọi lại trogn class HOADON ý

  17. huongnike says:

    anh chua xem giup em a

  18. huongnike says:

    #include
    #include
    #include
    #include
    #include
    #include
    #include

    class Hanghoa
    { private:
    int soluong ;
    unsigned int mahang;
    char tenhang[30];
    double dongia;
    Hanghoa *hanghoa;
    int namsx;
    public:
    Hanghoa(); //constructor
    void nhaphang();
    void timkiemtheoma();
    void hienthi();
    void timkiemtheoten();
    };

    Hanghoa::Hanghoa()
    { soluong=0;
    //tenhang=Null;
    dongia=0.0 ;
    }

    void Hanghoa::nhaphang() //nhap hang co ktra ma hang,neu da ton tai ma hang,thi phai nhap lai
    {
    clrscr();
    int flag; //co
    cout<<endl<>soluong;
    hanghoa=new Hanghoa[soluong]; //cap phat khong gian nho

    for(int i=0;i<soluong;i++)
    { cout<<endl<<" Nhap thong tin cho hang thu: " <<(i+1);
    do
    { flag=0; //co
    cout<<endl<>hanghoa[i].mahang ;
    for(int j=0;j<i;j++)
    { if(hanghoa[j].mahang==hanghoa[i].mahang) //ma hang nay da co roi
    { cout<<endl<<" Ma hang nay da co roi, hay nhap lai" ;
    flag= -1;
    }
    else
    flag=1;
    }
    }while(flag<0);

    cin.ignore(); //loai bo dau enter
    cout<<" Nhap ten hang: "; cin.get(hanghoa[i].tenhang,30);
    cout<>hanghoa[i].dongia;
    cout<>hanghoa[i].namsx;
    //cout<<endl<>hanghoa[i].soluong;
    }
    }

    void Hanghoa::hienthi()
    { cout<<endl<<" So luong mat hang: " <<soluong;
    for(int i=0;i<soluong;i++)
    { cout<<endl<<"\n Thong tin ve san pham thu: " <<(i+1);
    cout<<endl<<" Ma hang: " <<hanghoa[i].mahang;
    cout<<endl<<" Ten hang: "<<hanghoa[i].tenhang;
    cout<<endl<<" Don gia: " <<hanghoa[i].dongia;
    cout<<endl<<"namsx :"<<hanghoa[i].namsx;
    }
    }

    void Hanghoa::timkiemtheoma()
    { unsigned int ma,dem=0;
    cout<<endl<<endl<>ma;
    for(int i=0;i<soluong;i++)
    { if(hanghoa[i].mahang==ma&&hanghoa[i].namsx<2000)
    { cout<<endl<<" Hang can tim co trong CSDL" ;
    cout<<endl<<" Thong tin ve san pham: ";
    cout<<endl<<" Ma hang: " <<hanghoa[i].mahang;
    cout<<endl<<" Ten hang: "<<hanghoa[i].tenhang;
    cout<<endl<<" Don gia: "<<hanghoa[i].dongia;
    dem++;
    }
    }
    if(dem==0)
    cout<<endl<<" Hang can tim khong co trong CSDL" ;

    }
    void Hanghoa::timkiemtheoten()
    { char ten[30];
    int kt=0;
    cout<<endl<<endl<<" Nhap ten hang can tim kiem: " ;
    gets(ten);
    for(int i=0;i<soluong;i++)
    if(strcmpi(hanghoa[i].tenhang,ten)==0&&hanghoa[i].namsx<2000)
    // if(kt==0&&hanghoa[i].namsx<2000)
    { cout<<endl<<" Hang can tim co trong CSDL" ;
    cout<<endl<<" Thong tin ve san pham: ";
    cout<<endl<<" Ma hang: " <<hanghoa[i].mahang;
    cout<<endl<<" Ten hang: "<<hanghoa[i].tenhang;
    cout<<endl<<" Don gia: "<<hanghoa[i].dongia;
    kt=1; }
    if(kt==0)
    cout<<endl<<" Hang can tim khong co trong CSDL" ;

    }

    void main()
    { Hanghoa hanghoa;
    hanghoa.nhaphang();
    hanghoa.hienthi();
    hanghoa.timkiemtheoma();
    hanghoa.timkiemtheoten();
    getch();
    }

    trên đây là code bài của em,anh có thể làm giup em thêm 2 hàm nữa là
    • Lưu các thông tin vừa nhập vào một file text. Mỗi dòng là thuộc tính của hàng hóa
    • Đọc thông tin từ file đã lưu và hiển thị thông tin lên màn hình
    đươc ko ạ?em đang cần gấp ,mong anh giup đỡ

    • Hiện giờ mình đang ôn thi cuối kỳ nên không có thời gian để giải quyết các vấn đề của bạn. Mon bạn thông cảm. Nhưng mình đọc sơ qua thì thấy code của bạn viết sai rất nhiều. Bạn dựa vào những thông tin đọc và ghi file mình cung cấp ở trên chắc chắn có thể làm được bài của bạn. Chúc bạn thành công.

  19. tomasino says:

    Anh cho em xin bài demo ví dụ về tìm cây có hướng có trọng lượng nhỏ nhất-có đồ họa vẽ đồ thị cho người ta thấy (toán rời rạc). Em đang cần gấp để làm bài báo cáo. Cảm ơn anh nhiều lắm!
    Demo dùng chương trình nào cũng được.

  20. Hoai An says:

    Bạn ơi sao mình mở file để đọc kt hàm !eof() là thấy nó ở cuối file luôn rồi nên ko thể đọc được nữa, bạn chỉ mình cách khắc phục với!

  21. panda says:

    bạn ơi mình có bt như thế này!
    đã có 1 file txt có nội dung rồi
    đọc file đó rồi xuất ra màn hình
    giúp mình với!
    sử dụng ngôn ngữ C++ nha bạn

  22. viet says:

    Ban giup minh ve doc va luu file trong C voi!!!
    Dac biet, ban co the chi minh cach luu mot file .txt co nhieu cot thanh mot cot duoc ko?
    Ban reply nhanh cho minh voi nhe! Do minh dang can gap!
    Cam on ban nhieu nhe!

  23. GauMap says:

    cho hỏi, mình co code như thế này:
    #include "stdafx.h"
    #include "conio.h"
    #include "stdio.h"
    #include "cstdio"
    #include "fstream"
    #include "iostream"
    #include "stdlib.h"
    #include "time.h"
    #include "string.h"
    using namespace std;
    int main()
    {
    char a[10000];char n[1];int i;
    //xuat chữ trong file txt ra màn hình
    fstream file1("c:\\abc.txt",ios::in);
    if(file1.fail())
    {
    cout<>a;
    cout<<a;
    //file1.getline(a,10000);
    }
    while(!file1.eof())
    {
    cout<>a;
    if(strcmp(n,a)==1)
    {
    cout<<"co";
    _getch();
    exit(1);
    }
    else
    {
    cout<<"Khong tim thay!!!";
    _getch();
    exit(1);
    }
    }
    file1.close();
    getch();
    }

    Mình sử dụng 2 lần while(!file1.eof), nhưng nó chỉ thực hiện dc lệnh đầu, còn lệnh sau k thực hiện, bay giờ muốn sau khi thực hiện xog lệnh đầu thì return để thực hiện tiếp lệnh sau như thế nào vậy.

    • Mình chỉ thấy đoạn code trên có một vòng lặp while thôi mà bạn. Còn cái nữa ở đâu vậy?

      • GauMap says:

        int main()
        {
        char a[1000];char n[1];int i;
        //xuat chữ trong file txt ra màn hình
        fstream file1("c:\\abc.txt",ios::in|ios::out|ios::ate);
        if(file1.fail())
        {
        cout<>a;
        cout<<a;
        //file1.getline(a,10000);
        }
        while(!file1.eof())
        {
        cout<>a;
        if(strcmp(n,a)==0)
        {
        cout<<"co";
        _getch();
        exit(1);
        }
        else
        cout<<"Khong";
        _getch();
        exit(1);
        }
        file1.close();
        getch();
        }

        Xin lỗi mình copy nhầm ^_^
        Có điều ở vòng While 2 nó xuất ra kết quả sai hoàn toàn.

      • Tình hình là mình vẫn chỉ thấy 1 vòng lặp while. Cái kia ở đâu vậy bạn ^_^

  24. annabui says:

    Hey! cho mình hỏi về STL
    mình có bài tập tạo một file tudien.txt bằng ifstream bây giờ mình phải đọc nó sang tudien được tạo bằng #include “map”
    map”string ,string” dictionary ;
    mình không biết cách nào để làm ? Bạn nào biết chỉ giúp!Thanks

  25. nguyen tu cuong says:

    anh oi! em co bai day ma lam mai khong ra!anh giup em voi!
    Bài tập C-asignmen1

    BÀI 8

    Ghi chú: mỗi bài được trình bày theo các mức khác nhau, từ dễ đến khó. Sinh viên nên thực hiện qua từng bước để nâng cao dần kỹ năng. Tuy nhiên nếu thời gian không cho phép thì sinh viên có thể chỉ thực hiện ở một mức mà thôi.

    MỨC 1.

    Xây dựng một chương trình quản lý sinh viên trong đó kiểu dữ liệu cấu trúc mô tả một sinh viên có dạng sau:
    typedef struct
    {char masv[10], hoten[30];
    float toan; (1)
    float ly;
    float hoa;
    float dtb;
    } NhanSu;

    Hãy khai báo một mảng a (tĩnh hoặc động) có kiểu dữ liệu là NhanSu để lưu danh sách các sinh viên của cơ quan. Mảng có cỡ cực đại là nmax được định nghĩa trước trong phần các chỉ thị tiền xử lý (sử dụng lệnh #define…). Biến nguyên count chỉ số người trong danh sách. Ban đầu count = 0, tức là danh sách còn rỗng. Chương trình gồm thực đơn với các mục chọn sau đây:
    1. Khởi tạo danh sách.
    2. Nhập k sinh viên.
    3. Xem danh sách sinh viên.
    4. Sắp xếp danh sách theo thứ tự tăng dần theo dtb.
    5. Kiểm tra xem danh sách đã sắp xếp chưa.
    6. Tìm kiếm tuyến tính theo hoten.
    7. Tìm kiếm nhị phân theo dtb.
    8. Xóa sinh viên có masv = xMasv (nhập từ bàn phím).
    9. Chèn một sinh viên vào danh sách đã sắp xếp sao cho tính sắp xếp vẫn được bảo tồn.
    Z. Kết thúc.
    Giải thích các chức năng:
    1. Khi khởi tạo danh sách nếu là mảng tĩnh thì ta chỉ cần đặt lại count=0 để chỉ ra rằng danh sách rỗng, không có phần tử nào. Nếu là mảng động thì ta xóa vùng bộ nhớ đã cấp phát, sau đó cấp phát lại và đặt count=0.
    2. Khi gọi chức năng này ta nhập một số k, sau đó lần lượt nhập k người. Khi nhập chỉ cần nhập các trường masv,hoten, toan, ly, hoa; còn trường dtb thì tự tính toán. Trong chức năng này chưa cần hiện ra danh sách các sinh viên. (nên viết một hàm nhập một sinh viên, sau đó sử dụng hàm này để nhập k sinh viên).
    3. Chức năng này cho hiện ra trên màn hình danh sách toàn bộ các sinh viên. Nếu có được khuôn dạng đẹp thì càng tốt.
    4. Sắp xếp danh sách sinh viên theo thứ tự tăng dần của trường dtb.
    5. Viết hàm trả về giá trị đúng (=1) nếu danh sách đã sắp xếp, sai (=0) nếu danh sách chưa sắp xếp.
    6. Nhập một giá trị thực x rồi thực hiện tìm kiếm xem trong danh sách có ai dtb=x không. Nếu không có thì thông báo là không có, nếu có thì in ra màn hình toàn bộ những người có dtb=x.
    7. Kiểm tra xem danh sách đã sắp xếp chưa. Nếu danh sách đã sắp xếp thì nhập một giá trị thực x sau đó thực hiện tìm kiếm nhị phân xem trong danh sách có phần tử nào có dtb bằng x không. Nếu không có thì thông báo, nếu có thì cho hiện người tìm thấy trên màn hình.
    8. Nhập một chuỗi xMasv sau đó tìm người có masv=xMasv. Nếu tìm thấy thì hỏi có xóa không, nếu trả lời có thì xóa người đó khỏi danh sách.
    9. Nhập một người mới. Kiểm tra xem danh sách đã sắp xếp theo dtb chưa. Nếu chưa sắp xếp thì kết thúc, còn sắp xếp rồi thì chèn người mới vào sao cho toàn bộ danh sách vẫn được sắp xếp tăng dần theo dtb.

    MỨC 2.
    Các yêu cầu tương tự như mức 1, nhưng danh sách được cài đặt trên tệp nhị phân.
    Tuy nhiên khi thực hiện các thao tác sắp xếp, tìm kiếm thì có thể đổ vào mảng trong bộ nhớ để thực hiện, sau đó ghi trở lại tệp nếu cần (ví dụ với thao tác sắp xếp).

    MỨC 3.
    Các yêu cầu tương tự như mức 1, nhưng danh sách được cài đặt trên tệp nhị phân và các thao tác như sắp xếp, tìm kiếm cũng được thực hiện trực tiếp trên tệp.

    Cụ thể hơn, các mục chọn là:
    1. Khởi tạo danh sách.
    2. Nhập k sinh viên.
    3. Xem danh sách sinh viên.
    4. Sắp xếp danh sách theo thứ tự tăng dần theo Masv.
    5. Kiểm tra xem danh sách đã sắp xếp chưa.
    6. Tìm kiếm tuyến tính theo masv.
    8. Xóa sinh viên có masv = xMasv (nhập từ bàn phím).
    Z. Kết thúc.
    Giải thích:
    -Khi thực hiện mục “Xem danh sách sinh viên” thì trước hết đưa kết quả ra một tệp văn bản, sau đó cho hiển thị tệp văn bản ra màn hình. Nếu tệp lớn thì mỗi lần chỉ hiển thị 24 dòng rồi dừng lại, chờ nhấn phím mới hiện tiếp.
    – Sắp xếp danh sách trực tiếp trên tệp bằng phương bubble sort.

    ***********************
    lam o muc 3 kho wa a oi

  26. nguyen tu cuong says:

    chuong trinh cua em nhu the nay:anh xem em voi! ngay 26 la em thi oy! em cam on anh rat nhieu a!!!!!!!!!!!
    #include
    #include
    #include
    #include
    #define nmax 5
    #include
    #include

    typedef struct SV
    {
    char masv[10],hoten[30];
    float toan,ly,hoa,dtb;
    } nhansu['n'];
    //************XAY DUNG CAC HAM********************
    //HAM KHOI TAO
    void khoi_tao(int &n)
    {
    cout<>n;
    }
    //HAM NHAP THONG TIN SING VIEN
    void nhap_SV(SV nhansu['n'],int n)
    {
    int i;
    cout<<"\n NHAP THONG TIN VE SINH VIEN";
    cout<<endl;
    for(i=1;i<=n;i++)
    {
    cout<<" Nhap thong tin sinh vien thu: "<<i<<endl;
    cout<>nhansu[i].masv;
    cout<<"\n Nhapten sinh vien: ";
    gets(nhansu[i].hoten);
    cout<>nhansu[i].toan;
    cout<>nhansu[i].ly;
    cout<>nhansu[i].hoa;

    }
    //tinh diem trung binh
    for(i=1;i<=n;i++) nhansu[i].dtb= (nhansu[i].toan+nhansu[i].ly+nhansu[i].hoa)/3;
    }
    //HAM XEM DANH SACH SINH VIEN
    void xem_DS_SV(SV nhansu['n'],int n)
    {
    int i;
    cout<<" DANH SACH SINH VIEN"<<endl;
    cout<<setw(10)<<"MASV"<<setw(30)<<"HOTEN";
    cout<<setw(7)<<"TOAN"<<setw(4)<<"LY"<<setw(4)<<"HOA"<<setw(10)<<"DTB";
    for(i=1;i<=n;i++)
    {
    cout<<endl;
    cout<<setw(10)<<nhansu[i].masv;
    cout<<setw(30)<<nhansu[i].hoten;
    cout<<setw(7)<<nhansu[i].toan;
    cout<<setw(4)<<nhansu[i].ly;
    cout<<setw(4)<<nhansu[i].hoa;
    cout<<setw(10)<<nhansu[i].dtb;
    }
    cout<<"\nbam phim bat ky de tiep tuc";
    getch ();
    }
    //HAM ghi DANH SACH SINH VIEN
    void ghi_DS_SV(SV nhansu['n'],int n)
    {
    int i;

    ofstream f ("sinhvien.txt");
    f<<" DANH SACH SINH VIEN"<<endl;
    f<<setw(10)<<"MASV"<<setw(30)<<"HOTEN";
    f<<setw(7)<<"TOAN"<<setw(4)<<"LY"<<setw(4)<<"HOA"<<setw(10)<<"DTB";
    for(i=1;i<=n;i++)
    {
    f<<endl;
    f<<setw(10)<<nhansu[i].masv;
    f<<setw(30)<<nhansu[i].hoten;
    f<<setw(7)<<nhansu[i].toan;
    f<<setw(4)<<nhansu[i].ly;
    f<<setw(4)<<nhansu[i].hoa;
    f<<setw(10)<<nhansu[i].dtb;

    }
    f.close();
    }
    //--------------------------------------------------------------
    //CHUA HIEU GI CA
    void doc_DS_SV(SV nhansu['n'],int n)
    {
    FILE* f;
    f=fopen("sinhvien.txt","r");
    if(f!=NULL)
    while(!feof(f))
    {
    printf("%c",fgetc(f));
    }
    fclose(f);
    cout<<"\nbam phim bat ky de tiep tuc";
    getch();
    }
    //-----------------------------------------------------------
    //HAM SAP XEP TANG DAN THEO DIEM MASV
    void SX_tangdan_MASV(SV nhansu['n'],int n)
    {
    int i,j,dem=0;
    SV a;
    for(i=1;i<n;i++)
    for(j=i+1;j0)
    {
    dem+=1;
    a=nhansu[i];
    nhansu[i]=nhansu[j];
    nhansu[j]=a;
    }
    }
    if(dem==0) cout<<"\n Danh sach da duoc sap xep"<<endl;
    else
    {
    cout<<"\n Danh sach chua duoc sap xep!"<<endl;
    cout<<" Danh sach sau khi sap xep la: "<<endl;
    xem_DS_SV(nhansu,n);
    }
    //cout<<"\nbam phim bat ky de tiep tuc";
    getch ();
    }

    //HAM KIEM TRA DANH SACH DA SAP XEP HAY CHUA
    //kiem tra bi sai chua dung
    void KTra_DS(SV nhansu['n'],int n)
    {
    int i,j,dem=0;
    for (j=i+1;j<=n;j++)
    {
    if ((strcmp(nhansu[i].masv,nhansu[j].masv)<0))
    {
    dem+=1;
    }
    }
    if(dem==0) cout<<"\n Danh sach da duoc sap xep tang dan theo masv!!.."<<endl;
    else cout<<"Danh sach chua duoc sap sep tang dan theo masv..!.."<<endl;
    xem_DS_SV(nhansu,n);
    }

    //HAM TIM KIEM TUYEN TINH THEO MA SV
    void TKiem_masv(SV nhansu['n'],int n)
    {
    SV a;
    cout<>a.masv;
    int i,dem=0;
    for(i=1;i<=n;i++)
    {
    if(*a.masv==*nhansu[i].masv)
    {
    cout<<" MASV: "<<nhansu[i].masv;
    cout<<" Hoten: "<<nhansu[i].hoten;
    cout<<" Toan: "<<nhansu[i].toan;
    cout<<" Ly: "<<nhansu[i].ly;
    cout<<" Hoa: "<<nhansu[i].hoa<<" DTB: "<<nhansu[i].dtb<<endl;
    dem+=1;
    }
    }
    if(dem==0) cout<<"\n Khong co sinh vien can tim";
    cout<<"\nbam phim bat ky de tiep tuc";
    getch ();
    }
    //HAM XOA MOT SINH VIEN CO MASV NHAP TU BAN PHIM
    void Xoa_SV(SV nhansu['n'],int n)
    {
    SV a;
    cout<>a.masv;
    int i,j,dem=0;
    char xoa;
    for(i=1;i<=n+1;i++)
    {
    if(*a.masv==*nhansu[i].masv)
    {
    dem+=1;
    j=i ;
    }
    }

    if (dem==0) cout<<"\n Khong co sinh vien co MASV nhu ban da nhap" <<endl;
    else
    {
    cout<<"\n Ban co chac chan xoa:"<<nhansu[j].masv<<" "<<nhansu[j].hoten<<" ra khoi danh sach hay ko";
    cout<>xoa;
    switch (xoa)
    {
    case '1': {
    for (i=j;i<n;i++) {nhansu[i]=nhansu[i+1];}
    cout<<"\n Danh sach sau khi xoa:"<<endl;
    n=n-1;
    xem_DS_SV(nhansu,n);
    break;
    }
    default :{ cout<<"\n Ban da khong xoa!";break;}
    }

    }
    cout<<"\nbam phim bat ky de tiep tuc";
    getch ();
    }

    void Chen_SV(SV nhansu['n'],int n)
    {
    SV a;
    int i;
    cout<<"\n Nhap thong tin ve sinh vien can chen:";
    cout<<endl;
    cout<>a.masv;
    cout<>a.hoten;
    cout<>a.toan;
    cout<>a.ly;
    cout<>a.hoa;
    a.dtb=(a.toan+a.hoa+a.ly)/3;
    cout<<"\n DANH SACH SINH VIEN SAU KHI CHEN";
    cout<=1)

    {
    if (a.dtb>=nhansu[i].dtb) {nhansu[i+1]=a;break;}
    else nhansu[i+1]=nhansu[i];
    if (i==1) {nhansu[1]=a; break ;}
    i--;
    }
    n=n+1;
    xem_DS_SV(nhansu,n);
    cout<<"\nbam phim bat ky de tiep tuc";
    getch ();
    }
    //CHUONG TRINH CHINH
    main ()
    {
    int c,n; struct SV nhansu['n'];
    while(1)
    {
    clrscr();

    cout<<"2.Nhap k sinh vien\n";
    cout<<"3.Xem danh sach tu file\n";
    cout<<"4.Xep danh sach theo thu tu Masv binh tang dan\n";
    cout<<"5.Kiem tra xem danh sach da dc sap dep chua\n";
    cout<<"6.Tim 1 sinh vien theo masv trong danh sach\n";
    cout<<"7.Xoa xmsv danh sach\n";
    cout<<"9.Thoat\n";
    cout<>c;
    while(c9) {cout<<"Bam sai so\n";
    cout<>c;}
    if(c==2)
    {
    khoi_tao(n);
    nhap_SV(nhansu,n);
    ghi_DS_SV(nhansu,n);
    }
    else if(c==3)
    {
    doc_DS_SV(nhansu,n);
    }
    else if(c==4)
    {
    SX_tangdan_MASV(nhansu,n);

    ghi_DS_SV(nhansu,n);
    }
    else if (c==5)
    {
    KTra_DS(nhansu,n);
    }
    else if(c==6)
    TKiem_masv(nhansu,n);
    else if(c==7)
    {
    Xoa_SV(nhansu,n);
    ghi_DS_SV(nhansu,n);
    }
    else if(c==8)
    doc_DS_SV(nhansu,n);
    else break;
    }
    }

  27. nguyen tu cuong says:

    em can gap lam! ban nao len thay bai viet thi giup mjng voi nha!minh thank nhiu lam
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  28. annabui says:

    cam on ban ve code nhung o cho them tu vao DIctionary trong code la insert tung tu .Gio minh tao 1tu dien bang file.txt gio minh tach no ra lam 2 mang mot la tieng anh ,mot la tieng viet va insert no vao dictionary ,minh khong biet lam sao de tach ra 2 mang ca
    tu dien minh tao trong file la
    apple: qua tao
    ban giup minh nha.Thanks

  29. vaysaovaysao says:

    Chào anh em đang gặp vấn đề về đọc file mong anh chỉ giáo (C++):
    Em có một file text.txt được lưu sẵn thông tin theo cú pháp sau:
    taikhoan [\t] matkhau [\t] thongtin [\n]
    taikhoan2 [\t] matkhau2 [\t] thongtin2 [\n]

    Người dùng nhập vào 2 giá trị là taikhoan, matkhau
    Mình đọc trong file txt theo hàng, nếu trong hàng có taikhoan, matkhau trùng với người dùng vừa nhập thì in ra đúng, ngược lại in ra sai
    Thank

  30. Hưng says:

    Cho mình hỏi có chỉ định thư mục lưu file không bạn?
    Cảm ơn!

    • Tất nhiên là được rồi. Nếu như không để đường dẫn cụ thể thì chuong trình sẽ tự động lưu file cùng đường dẫn với tập tin thực thi của chương trình (.exe). Bạn có thể chỉnh đường dẫn cụ thể lại. Ví dụ như: “D:\\Code\\Helloworld”….

  31. Thanh Hồi says:

    e đã thấy các chương trình về đọc file, nhưng bây giờ giả sử e có ma trận
    1 2 3
    5 6 7
    7 8 9

    e chỉ muốn đọc số 9 thôi chẳng hạn, thì như thế nào ạ??

  32. alite says:

    Anh ơi cho em hỏi tại muốn dùng thư viện ofstram thì phải đổi hàm main từ void thành int main và thêm return 0 hã ? Em mới học cách đọc tập tin nên ko hiểu rõ lắm .

  33. 20093337 says:

    Anh ơi,em đang học giao tiếp vs tệp văn bản , em học bên Điện , đang học môn Kỹ thuật lập trình ah, thầy chỉ dùng lệnh fprintf,printf.., không dùng cout . Em chưa hiểu mình lấy gì trong tệp văn bản ak. Giao tiếp vs tệp văn bản là như thế nào ah?

  34. quang says:

    Anh ơi. cho em hỏi. em giờ đang học C.
    có bài như thế này.

    Cho file COSO.IN gồm n + 1 dòng có cấu trúc như sau:
    – Dòng đầu tiên chứa số n, n < 1000
    – n dòng tiếp theo, mỗi dòng chứa 2 số: a, b cách nhau bởi dấu cách. Trong đó:
    o a bằng 2 hoặc 10
    o b là một số nguyên dương nào đó trong hệ cơ số a. Số b có không quá 100 chữ số.
    Hãy lập chương trình đổi số b sang cơ số 10 (nếu a bằng 2) hoặc cơ số 2 (nếu a bằng 10) và in ra file COSO.OUT theo n dòng, mỗi dòng ghi duy nhất số b sau khi đã đổi cơ số.
    Ví dụ:
    COSO.IN COSO.OUT
    5 5
    2 101 54
    2 110110 100010
    10 34 0
    2 0 11111111111
    10 1023

    anh giúp em xem sao. C đọc file COSO.IN như thế nào. và sao để C nó nhận biết là số đầu tiên là cơ số. và với số lớn thì sao. cỡ hàng tỉ a ah

  35. quang says:

    anh cho em hỏi, thế bây giờ bài của em với con số lên hàng chục hàng trăm nghìn tỉ thì làm thế nào
    đây chủ yếu là giải quyết bài toàn số lớn
    vd em lấy ở cơ số 10 123456789999
    kết quả ở COSO.OUT lại thành 1111111111111111111111111111111
    nó không đúng.
    vậy làm thế nào để giải quyết vấn đề này với những số lớn như thế này. thanks anh

  36. quang says:

    anh ah. b có thể tới 100 chữ số mà. nếu từ mã cơ số 2 sang 10 cung phải tầm 10^30.
    em vẫn chưa biết làm sao để đưa số đó thành các chữ số vào mảng. a giúp e được k.

  37. quang says:

    và sau khi đưa vào mảng thành từng số thì chia thế nào a. tks a

  38. quang says:

    nhưng mà a. đây là nhập từ bàn phím từng số, cái này em tìm trên mạng cũng thấy có.
    Nhưng lấy từ file ra. k sử dụng bàn phím thì viết thế nào.tks a
    với lại a giải thích chi tiết cho em về code 1 chút.
    có một số lệnh em chưa học. tks a

    • quang says:

      với lại nếu có 1 số tầm 50 chữ số 1. vậy em khai báo nó là kiểu gì. để đọc từng chữ đưa vào trong mảng vậy. cái này em không biết mong a chỉ bảo

      • Cái này bạn thiếu kiến thức cơ bản về lập trình thì phải tự học lại thôi. Hiện tại mình không có thời gian để giải thích từng dòng code cho bạn hiểu. Việc sử dụng chuỗi, mảng trong C liên quan đến rất nhiều bài tập. Do đó bạn cần nắm vững trước. Những bài viết như thế trên mạng rất nhiều. Bạn cứ từ từ đọc. Đừng quá nóng vội. Chỉ mới bắt đầu thôi mà 😀

  39. quang says:

    ý em là thế này.
    bây giờ bài tập là như thế.
    làm sao em đưa nó vào mảng được.
    em lấy ví dụ nhé
    số 1111
    em đưa vào mảng 1,1,1,1 đưa về cơ số 10 về mảng 1,5 rồi đưa ra file là 15
    tương tự như thế
    số 15 trong cơ số 10 em đưa vào mảng thành 1,5 đưa về cơ số 2 mảng là 1,1,1,1 đưa ra file là 1111
    để còn làm số lớn. vì b có thể lên tới 100 số mà. nếu in ra kết quả ngay thì không có kiểu nào chứa được. em chỉ thắc mắc đoạn này thôi

    • Source code mình cung cấp cho bạn, phần chuyển từ nhị phân sang thập phân đã làm việc đó rồi. Bạn nên đọc kỹ cách lại nhé.

  40. quang says:

    nhưng cái soure code của anh sum lại là long. bây giờ làm thế nào để nó biểu thị được số lớn

    • Việc đó thì bạn đơn giản là bạn thay đổi phương thức trả về là kiểu chuỗi. Có thể khai báo sum là một kiểu chuỗi. Tại chỗ sum = sum + n * b; chỉ đơn giản là cộng hai số nguyên lớn sử dụng mảng như đường link mình đã gởi cho bạn.

  41. quang says:

    tks a nhiều
    đây là bài của bạn em. a giải được thì giúp nó hộ cái
    Xây dựng một chương trình có chức năng tạo tín hiệu theo yêu cầu người sử dụng về dạng tín hiệu (bậc thang, dốc,xung vuông,sin hoặc ồn trắng), tham số của tín hiệu (tùy theo dạng tín hiệu chọn như biên độ, tần số, độ dốc, độ rộng xung…). Yêu cầu người sử dụng nhập khoảng thời gian cần tạo giá trị tín hiệu cùng thời gian trích mẫu, sau đó ghi các giá trị gián đoạn của tín hiệu ra 1 file do người dùng nhập.
    bài này đang cần gấp. nếu a rảnh giúp em chút. thanks a nhiều

  42. quang says:

    bài của em thì em khai báo char *sum. vậy n*b thì làm thế nào anh. làm sao để cái n là chuỗi hoặc mảng để sử dụng n[i]*b vậy a. và cái code trước em k hiểu chỗ này mong a giải thích giúp em
    n=(bin(k)-‘0’);tại sao bỏ ‘0’ đi nó lại báo lỗi

  43. huy says:

    Bạn có thể nói cho mìnhThao tác trên tập tin với 2 đối tượng không ?
    VD như class Person và class Student kế thừa từ class Person.

  44. Lam says:

    Bạn giúp mình tính 2 mũ n với n <= 300

  45. Lam says:

    Làm như thế nào vậy bạn?

  46. Lam says:

    Làm thế nào vậy bạn? Mình thấy nó lớn quá. Không làm sao được. Lưu 2 mũ n vào file nữa.
    Khó quá!!

  47. Thanh says:

    Chào bạn mình có một bài tập mà mình làm chưa ra bạn có thể chỉ giúp mình không. Bài của mình đó là đọc từ 1 file text trong file input.txt này có chứa 2 ma trận dạng như sau:
    1 2 3 4 5 6
    3 6 5 7 8 1
    2 3 1 5 4 7
    *
    7 8 9 3 1 3
    2 1 4 5 6 3
    1 4 5 6 3 7

    mình muốn đọc từ file này rồi thực hiện nhân 2 ma trận sau đó xuất kết quả ra file output.txt:
    1 2 3 4 5 6
    3 6 5 7 8 1
    2 3 1 5 4 7
    *
    7 8 9 3 1 3
    2 1 4 5 6 3
    1 4 5 6 3 7
    =

    Kết quả nhân 2 ma trận
    mình chỉ có thể đọc được file tới trước dấu * còn phía sau đọc tiếp không được bạn có thể chỉ giúp mình được không cảm ơn bạn rất nhiều!

    • Muốn làm được điều này bạn nên thêm vào 2 tham số là hàng và cột của ma trận. Ví dụ file input.txt trong ma trận của bạn có thể chỉnh lại như sau:

      3 6
      1 2 3 4 5 6
      3 6 5 7 8 1
      2 3 1 5 4 7
      *
      7 8 9 3 1 3
      2 1 4 5 6 3
      1 4 5 6 3 7

      Trong đó 3 là hàng của ma trận, 6 là cột của ma trận. Khi biết trước số hàng và cột của ma trận ta sẽ xác định được vị trí của dấu * . Tương ứng, đoạn code đọc ma trận:

      MaTran>>n; // Hàng ma trận.
      MaTran>>m; // Cột ma trận.
      for(int i = 0; i < n; i++)
      {
      for(int j = 0; j >a[i][j];
      }
      cout<>PhepTinh; // Dùng để đọc dấu *
      for(int i = 0; i < n; i++)
      {
      for(int j = 0; j >b[i][j];
      }
      }

      Bạn có thể download source mình viết trên DevC++ để đọc ma trận trường hợp của bạn tại: http://www.mediafire.com/file/clu8ksvgyglm4zk/ReadMatrix.rar

  48. 20093337 says:

    cũng là bài toán của Quang bên trên ah
    em mún hỏi là nếu không dùng đến chuỗi , có cách gì (liên quan đến mảng ) lưu từng chữ số của 1 số lớn (hàng 7-8 chục số) không ah?
    số thì mình lấy từ file text ah. không nhập trực tiếp từ bàn phím ah

  49. tien says:

    bạn giúp mình đọc nội từ file input.txt như sau:
    input.txt
    -dòng 1: (3,5) (4,2) (5,1) (5,0) //da thuc 1 :3x^5 + 4x^2+5x^1+5
    -dòng 2: (3,4) (3,2) (4.7,1) (5,0) // da thuc 2: 3x^4 +3x^2 +4.7x^1 +5
    làm sao để đọc đa thức đó: mà in ra file output.txt
    dòng 1: chứa da thuc 1;
    dong 2: chứa da thuc 2;
    dong 3: chứa tổng ,hiệu,tích của da thuc;
    mình không biết làm sao để đọc được mong bạn chỉ giúp.

  50. tien says:

    bạn giúp mình sớm nha. mình sắp nộp bài rồi mà bữa giờ mấy đứa bạn cũng không biết làm.

  51. An says:

    thanhcuong có thể giúp mình 1 tý được. Ngày mai mình nộp bài rồi mà bài tập này mình gởi cho 1 người khóa trên nhưng làm không được cũng không nói mình 1 tiếng. Giờ gọi hỏi thì nói là anh làm không được:(( Thời gian không còn nhiều nên mình không tự mò được. Cụ thể là bài này mình viết hoàn chỉnh rồi nhưng mình chưa học nhập xuất tập tin bằng file text. Thanhcuong có thể chuyển nó sang nhập xuất bằng flie text giúp mình được không? Nếu được mình cảm ơn rất nhiều. Nếu được thì giúp mình hoàn thành vào sáng mai với nha. Đây là source mình viết trên turbo C++ bài tính định thức và ma trận nghịch đảo của ma trận: http://www.mediafire.com/?9326bp987uoua42

  52. tien says:

    giải quyết giúp mình lun bạn nhé.

  53. HUNG says:

    a giup e cai
    e co 1 mang ten sum[i][j]
    1 0 0 0
    1 2 3 0
    9 0 1 0

    bây jo e làm thế nào để cộng các phần tử với nhau. sum[i][0] la hang don vi
    em muon cong sum[0] + sum[1] +sum[2] thì phải làm những gì

  54. Rua says:

    anh ui … giúp dùm e cái … e cần gấp lắm hjx…

  55. Rua says:

    Trùng nội dung với bạn zlunmatuz

  56. zlunmatuz says:

    Viết chương trình đọc 2 đa thức bậc n, m từ file text input.txt . Thực hiện:
    Tính Tổng, Hiệu, Tích, Thương các đa thức này.
    Cho biết đạo hàm đa thức 1 và nguyên hàm đa thức 2
    In kết quả ra file output.txt
    Cấu trúc file input.txt như sau :
    (an,n) (an-1,n-1) … (a0,0)
    (bm,m) (bm-1,m-1) … (b0,0)
    Ví du :
    (5.7,4) (-3,2) (1,1) (5,0)
    (-4.7,3) (-2.5,1) (1.3,0)
    Tuong ung 2 da thuc
    5.7x^4 – 3x^2 + x + 5
    -4.7x^3 – 2.5x + 1.3
    Cấu trúc file output.txt
    Dòng 1 : Tổng 2 đa thức
    Dòng 2 : Hiệu 2 đa thức
    Dòng 3 : Tích 2 đa thức
    Dòng 4 : Thương 2 đa thức
    Dòng 5 : Đa thức dư của phép chia của dòng 4 … Nếu phép chia k đủ thì ghi = 0
    Dòng 6 : Đạo hàm của đa thức thứ 1
    Dòng 7 : Nguyên hàm của đa thức thứ 2

    (Đã được chuyển sang tiếng Việt có dấu)

  57. tien says:

    bạn thanhcuong1990 ơi. ngày mai mình nộp bài rồi chỉ giùm mình cách giải quyết bài đa thức kia đi. tks nhiều.hj

  58. phuc says:

    a ơi a xem hộ e lỗi sai của bài này với :ĐỀ BÀI
    Cho file COSO.IN gồm n + 1 dòng có cấu trúc như sau:
    – Dòng đầu tiên chứa số n, n 10,làm tiếp 10>2 thì lỗi,không hiểu sao bỏ chương trình 10-2 đi thì 2-10 mới ghi sang COSO.OUT còn nếu k bỏ thì COSO.OUT trắng

    #include
    #include
    #include
    int a,b[100],c[100][40],d[40],e[400];
    char s[100];
    FILE *f1,*f2;
    void docfile()
    {
    fscanf(f1,"%d",&a);
    fscanf(f1,"%s",&s);
    //printf("\n%d",a);
    }
    void xau_mang()
    {
    int i,t;
    t=strlen(s);
    for(i=0;i<t;i++)
    b[i]=s[i]-'0';
    }
    void haimu()
    {
    int i,j,nho=0;
    c[0][0]=1;
    for(i=1;i<100;i++)
    {printf("\n");
    for(j=0;j<40;j++)
    {
    c[i][j]=(c[i-1][j]*2+nho)%10;
    nho=(c[i-1][j]*2+nho)/10;
    //printf("%d ",c[i][j]);
    }
    }
    }
    void hai_10()
    {
    int i,j,t,tg,nho=0;
    for(i=0;i<strlen(s);i++)
    {
    t=strlen(s)-1;
    if(b[i]==1)
    {
    for(j=0;j0))
    m--;
    if(m==0)
    d[m++]=0;
    for(j=m-1;j>=0;j--)
    fprintf(f2,"%d",d[j]);

    }
    int muoi_2()
    {
    int i,k=0,n=0,j=0,m=100,sodu=0,tg=0;
    while((b[m-1]==0)&&(m>0))
    {
    m--;
    }
    if(m==0)
    {
    b[m++]=0;
    }
    //printf("\n%d",m);
    while(1)
    {
    for(i=0;i<m-1;i++)
    if(b[i]==0)
    n++;
    if(n==m)
    return 0;
    else
    {
    for(i=0;i=0;i--)
    {
    fprintf(f2,"%d",e[i]);
    }
    }
    /*void ghi()
    {
    FILE *f2;
    f2=fopen("COSO.OUT","w");
    fprintf("
    fclose(f2);
    }*/
    void xoa()
    {
    int t,i;
    t=strlen(s);
    for(i=0;i<t;i++)
    {
    b[i]=0;
    d[i]=0;
    }
    }
    void main()
    {
    int i,n;
    f1=fopen("COSO.IN","r");
    f2=fopen("COSO.OUT","w");
    fscanf(f1,"%d",&n);
    haimu();
    for(i=0;i<n;i++)
    {
    docfile();
    xau_mang();
    if(a==2) hai_10();
    if(a==10) muoi_2();
    fprintf(f2,"\n");
    xoa();
    }
    fclose(f1);
    fclose(f2);
    }

    • phuc says:

      ĐỀ BÀI
      BÀI TẬP DÀI SỐ 1
      Cho file COSO.IN gồm n + 1 dòng có cấu trúc như sau:
      – Dòng đầu tiên chứa số n, n < 1000
      – n dòng tiếp theo, mỗi dòng chứa 2 số: a, b cách nhau bởi dấu cách. Trong đó:
      o a bằng 2 hoặc 10
      o b là một số nguyên dương nào đó trong hệ cơ số a. Số b có không quá 100 chữ số.
      Hãy lập chương trình đổi số b sang cơ số 10 (nếu a bằng 2) hoặc cơ số 2 (nếu a bằng 10) và in ra file COSO.OUT theo n dòng, mỗi dòng ghi duy nhất số b sau khi đã đổi cơ số.
      Ví dụ:
      COSO.IN
      5
      2 101
      2 110110
      10 34
      2 0
      10 1023
      COSO.OUT
      5
      54
      100010
      0
      111111111

  59. phuc says:

    http://www.mediafire.com/?ohigkto1ew9d16l
    code bài đấy của e đây ạ
    bài đổi 2>10 10>2,số lớn

  60. phuc says:

    hi.e xong roi.k phien a nua dau:))

  61. quoc says:

    Nhóm của Gate và Ballmer đang phải xây dựng một hệ thống điều khiển giám sát, trong đó có một modul hiển thị. Modul hiển thị là một màn hình LCD đơn sắc 8 dòng 20 cột, dùng để hiện các thông báo ngắn gọn dạng Text cho người sử dụng theo quy tắc sau:
    – Mỗi thông báo có thể có nhiều câu, mỗi câu hiển thị trên ít nhất một dòng.
    – Không có hai câu nào được hiển thị trên cùng một dòng.
    – Các câu được viết theo đúng quy tắc về chính tả tiếng Việt và không có dấu.
    – Không có từ nào nằm trên hai dòng.
    – Các dòng được căn giữa.
    Thông báo được soạn bởi Ballmer và lưu trong file WARNING.IN dưới dạng văn bản có độ dài không quá 160 ký tự (kể cả dấu cách). Tuy nhiên, do đãng trí nên Ballmer không soạn văn bản theo quy tắc trên mà viết các câu liên tiếp nhau như bình thường. Vì thế nhiệm vụ của Gate là phải xuất văn bản mà bạn cậu soạn lên màn hình LCD theo đúng quy tắc mà nhóm đã đặt ra. Là người cẩn thận, Gate đưa kết quả hiển thị ra file WARNING.OUT trước để xem có chính xác không rồi mới đưa ra màn hình LCD. Bạn hãy giúp Gate hoàn thành công việc của cậu ấy.
    Ví dụ:
    WARNING.IN
    Nhiet do: 130 oC. Nhiet do qua cao!!! Buoc 1: Bat quat lam mat. Buoc 2: Mo cua gio so 1 va so 2. Buoc 3: Tang goc mo alpha them 30 do dien.
    WARNING.OUT
    Nhiet do: 130 oC.
    Nhiet do qua cao!!!
    Buoc 1: Bat quat lam
    mat.
    Buoc 2: Mo cua gio
    so 1 va so 2.
    Buoc 3: Tang goc mo
    alpha them 30 do

    Bây giờ mình phải làm thế nào
    xâu có đọc kí tự trống không.
    làm sao căn giữa được khi có dấu cách như vây.
    bạn giúp mình chút

  62. Huyền says:

    Bạn ơi!cho mình hỏi vấn đề liên quan đến cộng hai ma trận đọc dữ liệu từ tệp.sd class để miêu tả ma trận.ma trận được cấp phát động dùng toán tử new.vậy thì đọc dữ từ tệp có khác gì so với mấy vd bạn viết trên không?
    Mong trả lời sớm cho mình với!

    • Việc đọc và ghi file text trong C++ khi sử dụng fstream gần giống với cout và cin. Do đó, khi bạn cứ sử dụng bình thường như những ví dụ của mình ở trên. Chúc bạn thành công!

  63. dath says:

    Cho em 1 ví dụ về đọc từ file txt vào 1 danh sách đặc được không? Trong đó hàng đầu tiên là số phần tử, các hàng còn lại là nội dung danh sách.

    • Bạn có thể cho mình một vài ví dụ về “danh sách đặc” của bạn được không? Thực sự mình chưa hiểu “danh sách đặc” là gì?

  64. tao says:

    bạn ơi cho mình hỏi phần mà bạn viết đó trên C++ hay là C# vậy bạn. mà mình viết trên Turbo C++ toàn thấy báo lỗi thôi bạn à?

  65. tao says:

    Bạn ơi bạn có thể làm 1 bài về đọc tệp văn bản trên môi trường DOS,và dùng danh sách liên kết kép được không bạn. Đọc văn bản hiển thị trên chế độ text,và mình sử dụng được các phím lên xuống, sang trái sang phải và phím home được không bạn?

    • Mình viết trên DevC++. Một số hàm hoặc thư viện có thể Turbo C++ khai báo khác.

      • Nam says:

        Bạn có thể giúp mình chỉnh lại được không? Bạn giúp mình nhé. Thank you bạn nhiều lắm!!

      • tao says:

        Bạn có thể giúp mình chỉnh lại được không? Bạn giúp mình nhé. Thank you bạn nhiều lắm!!

      • Mình không có cài Turbo C++. Với lại bữa nay cũng ít ai dùng cái đó nữa rồi bạn. Nên chuyển qua dùng Visual C++ hoặc DevC++ thì tốt hơn đó.

      • tao says:

        Thế chương trình mà bạn viết ở trên kia là chương trình là có thể đọc được 1 văn bản được không bạn

      • Những chương trình mình viết trên chỉ dùng để đọc dữ liệu đơn giản từ file .txt. Không đọc được văn bản như word.

  66. Nam says:

    Bạn ơi bạn có thể viết làm 1 bài về đọc tệp văn bản trên môi trường DOS, và dùng danh sách liên kết kép được không bạn. Đọc văn bản hiển thị trên chế độ text,và mình sử dụng được các phím lên xuống, sang trái sang phải và phím home được không bạn?
    viết bằng Pascal được không bạn?

  67. nam says:

    Thế bạn có thể làm bài đó bằng C++ trong Visual cho mình được không bạn. Bạn cố giúp mình nhé.

  68. nam says:

    Bạn ơi những bài viết đó toàn bộ viết bằng C++ đúng không bạn. Thank you bạn. Chúc bạn học tốt nhé 😀

  69. king says:

    Bạn có thể giúp mình bài này được không:
    Viết chương trình giao tiếp giữa 2 tiến trình sử dụng pipe như sau: Tiến trình A
    đọc từ file gồm nhiều chuỗi liên tiếp, mỗi chuỗi gồm các phép toán +, -, *, / và 2 toán
    hạng. Ví dụ trong file sẽ lưu các chuỗi dạng như sau:
    2 + 3
    1 – 2
    4 * 6
    15 / 3
    Sau đó tiến trình thứ nhất truyền các chuỗi dữ liệu này cho tiến trình thứ hai. Tiến trình
    thứ hai thực hiện tính toán và trả chuỗi kết quả về lại cho tiến trình đầu tiên để ghi lại vào
    file như sau:
    2 + 3 = 5
    1 – 2 = -1
    4 * 6 = 24
    15 / 3 =5

    • Mình đưa ra ý tưởng giải bài này như sau:
      Đầu tiên bạn sử dụng kiến thức đọc file mình đã trình bày ở bài viết trên đọc dữ liệu đầu vào theo dạng: >> int >> char >>int
      Khi đã đọc các dữ liệu vào mảng. Ta thực hiện các phép tính toán. If (char = + hoặc -, *, /) thì thực hiện các phép toán đó cho các phần tử số trong mảng.
      Việc ghi file là ghi ra lại mảng đã nhập vào = kết quả.

      Lưu ý: việc đọc và ghi dữ liệu ở trên tương tự như cin>> và cout<< .
      Bạn cứ làm theo ý tưởng trên là được. Nếu bạn làm mà code bị lỗi gì đó thì mình có thể sửa giúp, chứ mình không làm cả bài.
      Chúc bạn thành công

  70. king says:

    bạn share cho mình code của operrator >> đi, mình download không được

    • Bạn down không được link nào. Mình đã kiểm tra tất cả các link đều bình thường. Nếu bạn chưa biết cách download trên azsharing.com thì có thể tìm hiểu cách download trên mạng. Chúc bạn thành công.

  71. tao says:

    Bạn cố gắng giúp mình nhé.

  72. tan says:

    xin a xem giup gium em code nay! em can gap lam!

    #include
    #include
    #include
    #include
    class cacloaiphong{
    char* tenloaiphong;
    int soluongphongcuamotloaiphong;
    float dientich;
    float tientrohangthang;
    int soluongnguoitoidatrongmotphong;
    char* giodongcuanhatro;
    int skn;
    public:
    cacloaiphong()
    {
    tenloaiphong = new char[50];
    giodongcuanhatro = new char[50];
    soluongphongcuamotloaiphong = 0;
    dientich = 0;
    tientrohangthang = 0;
    soluongnguoitoidatrongmotphong = 0;
    }
    ~cacloaiphong(){delete[] tenloaiphong;}
    void nhapcacloaiphong(char* = "")
    {
    cin.ignore();
    cout<<"\nnhap ten loai phong:";cin.getline(tenloaiphong,50);
    cout<>soluongphongcuamotloaiphong;
    cout<>dientich;
    cout<>tientrohangthang;
    cout<>soluongnguoitoidatrongmotphong;
    cout<>skn;
    cout<>giodongcuanhatro;
    }

    void incacloaiphong(char* = "")
    {
    cout<<"\nnhap ten loai phong:"<<tenloaiphong;
    cout<<"\nnhap so luong phong trong mot loai phong:"<<soluongphongcuamotloaiphong;
    cout<<"\nnhap dien tich:"<<dientich;
    cout<<"\ntien tro hang thang:"<<tientrohangthang;
    cout<<"\nnhap so luong nguoi toi da trong mot phong:"<<soluongnguoitoidatrongmotphong;
    cout<<"\nnhap gio dong cua nha tro";<<giodongcuanhatro;
    }
    friend class phongtro;
    };
    class phongtro
    {
    char tennhatro[50];
    char tenchunhatro[50];
    char diachinhatro[50];
    char sodienthoai[15];
    float dongiadien,dongianuoc,tiennuoc;
    int soluongphong;
    cacloaiphong ds[100];
    public:
    phongtro()
    {
    strcpy(tennhatro,"");
    strcpy(tenchunhatro,"");
    strcpy(diachinhatro,"");
    strcpy(sodienthoai,"");
    dongiadien,dongianuoc = 0;
    }
    ~phongtro()
    {delete[] tennhatro;}
    void nhapphongtro(char* = "")
    {
    cin.ignore();
    cout<<"\nnhap ten nha tro:"; cin.getline(tennhatro,50);
    cout<<"\nnhap ten chu nha tro:"; cin.getline(tenchunhatro,50);
    cout<<"\nnhap dia chi nha tro:"; cin.getline(diachinhatro,50);
    cout<>sodienthoai;
    cout<>dongiadien;
    cout<>dongianuoc;
    for(int i=1;i<=soluongphong;i++)
    { ds[i].nhapcacloaiphong();}
    }
    void inphongtro(char* = "")
    {cout<<"\nnhap ten nha tro:"<<tennhatro;
    cout<<"\nnhap ten chu nha tro:"<<tenchunhatro;
    cout<<"\nnhap dia chi nha tro:"<<diachinhatro;
    cout<<"\nnhap so dien thoai:"<<sodienthoai;
    cout<<"\nnhap don gia dien:"<<dongiadien;
    cout<<"\nnhap don gia nuoc:"<<dongianuoc;
    for(int i=1;i<=soluongphong;i++)
    { ds[i].incacloaiphong();tiennuoc= ds[i].skn*dongianuoc;
    cout<<"tien nuoc phong:"<<tiennuoc;}
    }
    void TP(char* str="")
    phongtro dsp[123];
    {
    cout<<str;
    cout<<"\n"<<tennhatro;
    cout<<"\n"<<diachinhatro;
    cout<<"\n"<<sodienthoai;
    }
    bool TPP(char* timmhatro)
    {
    bool thay=false;
    for(int i=0;i<dsp;i++)
    if(strcpy(tennhatro,diachinhatro) ==0)
    {
    thay=true;
    }
    else thay=false;
    return thay;
    }
    };
    int main()
    {
    cacloaiphong b[300];
    phongtro a[200];
    int n;
    cout<<"**************************************************";
    cout<<"\n ******** NIEN LUAN 1 ******** ";
    cout<<"\n Lap Trinh Ung Dung Quan Ly Cac Nha Tro ";
    cout<<"\nGiao vien huong dan sinh vien thuc hien";
    cout<<"\nNguyen Ngoc My Le Nhat Tan ";
    cout<<"\n MSSV: 0951010058 ";
    cout<<"\n**************************************************";
    cout<>n;
    for(int i=0;i<n;i++)
    {a[i].nhapphongtro();}
    cout<<"\nDanh sach phong tro:";
    for(int i=0;i<n;i++)
    {a[i].inphongtro();}
    cout<<"\nnhap loai phong tro:";
    for(int i=0; i<n; i++)
    {b[i].nhapcacloaiphong();}
    cout<<"\nnhap danh sach cac loai phong:";
    for(int i=0; i<n; i++)
    {b[i].incacloaiphong();}
    cin.ignore();
    cout<<"\nNhap thong tin tim :";
    cin.getline(timnhatro,50);
    for(int i=0;i<n;i++)
    if( a[i].TPP(timnhatro)== true)
    { a[i].TP();} else cout<<"\nKhong tim thay!";
    getch();
    };

  73. Tuấn says:

    Bạn ơi,giúp mình bài này với nhé.
    Nhóm của Gate và Ballmer đang phải xây dựng một hệ thống điều khiển giám sát, trong đó có một modul hiển thị. Modul hiển thị là một màn hình LCD đơn sắc 8 dòng 20 cột, dùng để hiện các thông báo ngắn gọn dạng Text cho người sử dụng theo quy tắc sau:
    – Mỗi thông báo có thể có nhiều câu, mỗi câu hiển thị trên ít nhất một dòng.
    – Không có hai câu nào được hiển thị trên cùng một dòng.
    – Các câu được viết theo đúng quy tắc về chính tả tiếng Việt và không có dấu.
    – Không có từ nào nằm trên hai dòng.
    – Các dòng được căn giữa.
    Thông báo được soạn bởi Ballmer và lưu trong file WARNING.IN dưới dạng văn bản có độ dài không quá 160 ký tự (kể cả dấu cách). Tuy nhiên, do đãng trí nên Ballmer không soạn văn bản theo quy tắc trên mà viết các câu liên tiếp nhau như bình thường. Vì thế nhiệm vụ của Gate là phải xuất văn bản mà bạn cậu soạn lên màn hình LCD theo đúng quy tắc mà nhóm đã đặt ra. Là người cẩn thận, Gate đưa kết quả hiển thị ra file WARNING.OUT trước để xem có chính xác không rồi mới đưa ra màn hình LCD. Bạn hãy giúp Gate hoàn thành công việc của cậu ấy.
    Viết bằng C bạn nhé.

  74. Buixuanhoang says:

    anh ơi! Khi anh đọc dữ liệu vào bằng các file fstream này tự động bỏ qua các kí tự khoảng trẳng như \t,\n hả anh…

  75. buiduchoc says:

    a oi! cho em hoi? cai nj’!
    chuong trinh cua em la viet mot lop sinh vien!
    khi nhap va hien thi thong tin! sau do ghi lai vao luu sinhvien.text
    anh chi? em lam sao em co’ the? ghi vao file hocsinh.text duoc vay anh

  76. Quỳnh says:

    Chào bạn!
    Mình có một trình DOS như sau:
    Nhập từ file matrix.txt nội dung của một đồ thị như sau:
    6 12 //6: số đỉnh của đồ thị 12// số cạnh
    1 5 2 // 1 (đỉnh 1) 5 (đỉnh 5) 2(trọng số là 2 (khoảng cách giữa 2 đỉnh))
    1 3 3
    1 6 1
    5 3 3
    5 2 1
    5 6 1
    6 3 1
    6 2 4
    2 4 1
    4 3 1
    4 6 4
    3 2 2

    mình muốn viết một trương chình chuyển từ danh sách các giá trị này sang một ma trận kề và ma trận trọng số để biểu diễn cho đồ thị.
    mình đã code thử nhưng không biết đã sai chỗ nào, chương trình không báo lỗi nhưng không chạy. 😦
    // Code không hiển thị đầy đủ

    Mong bạn bỏ chút thời gian để chỉ giúp mình. Cám ơn bạn nhiều!

    • Bạn upload code + file txt của bạn lên mediafire rồi post link lên đây. Chứ comment trên blog nó không hiển thị được toàn bộ code.

  77. Quỳnh says:

    Xin lỗi bạn, link code + file txt của mình đây:
    http://www.mediafire.com/?565w9nmms9tq16g
    __________________________________________________________________________
    Mình có một trình DOS như sau:
    Nhập từ file matrix.txt nội dung của một đồ thị như sau:
    6 12 //6: số đỉnh của đồ thị 12// số cạnh
    1 5 2 // 1 (đỉnh 1) 5 (đỉnh 5) 2(trọng số là 2 (khoảng cách giữa 2 đỉnh))
    1 3 3
    1 6 1
    5 3 3
    5 2 1
    5 6 1
    6 3 1
    6 2 4
    2 4 1
    4 3 1
    4 6 4
    3 2 2

    mình muốn viết một trương chình chuyển từ danh sách các giá trị này sang một ma trận kề và ma trận trọng số để biểu diễn cho đồ thị.
    mình đã code thử nhưng không biết đã sai chỗ nào, chương trình không báo lỗi nhưng không chạy. 😦
    Mong bạn bỏ chút thời gian để chỉ giúp mình. Cám ơn bạn nhiều!

  78. Vũ Văn Lý says:

    anh ơi h mà em muốn đọc dữ liệu từ 1 file rồi xử lý và in kết quả lên file đó luôn thì làm thế nào a.
    A cho e hướng giải quyết thui, code e tự làm. C++ nha anh.
    Vi dụ.
    File tinhtong.txt như sau
    1 2 3
    4 56

    Sau khi kết thúc thì file tinhtong.txt sẽ là:
    1 2 3 6
    4 56 60

    E cảm ơn a trước nha.hi
    AH mà cho e hỏi là anh là sinh viên trường nào vậy a.

  79. Toan says:

    Anh thanhcuong1990 ơi e có 1 bài về nhập và xuất chuổi ko biết làm sao đây:
    Đầu tiên mình nhập vào 1 công thức bool VD: f = 0001 1110 0110 “(1,14,8) (nhập số nhị phân)”
    khi mình nhập xong nó sẽ in ra 1 bảng chân trị như sau:
    0000 = 0
    0001 = 1
    0010 = 0
    0011 = 0
    0100 = 0
    0101 = 0
    0110 = 1
    0111 = 0
    1000 = 0
    1001 = 0
    1010 = 0
    1011 = 0
    1100 = 0
    1101 = 0
    1110 = 1
    1111 = 0
    (giá trị nhị phân từ 0 đến 16)
    Anh biết làm sao để nó in ra đc bảng này không ?
    Các giá trị = 1 tương đương với giá trị của hàm f,nếu ko có thì in ra = 0.
    E đang làm niên luận nên cần hỏi gấp anh và mấy bạn có ai biết chỉ giùm e cám ơn nhiều lắm !

  80. tonyk says:

    Anh ơi cho em hỏi là mình có thể tạo 1 thư mục mới khi chạy chương trình được ko ?

    • Tất nhiên là ta có thể tạo thư mục (directory) mới khi chạy chương trình rồi. Thư viện windows.h cung cấp cho ta phương thức đơn giản để thực hiện việc này. Cụ thể như sau:
      Ví dụ tạo Folder mới trong ổ đĩa C với tên “ThanhCuong”:
      #include "windows.h"
      // Tao duong dan.
      int main()
      {
      CreateDirectory ("C:\\ThanhCuong", NULL);
      return 0;
      }

      Để xóa đường đẫn vừa tạo. Ta sử dụng hàm RemoveDirectory();

      #include "windows.h"
      // Xoa Duong Dan
      int main(){
      RemoveDirectory("C:\\ThanhCuong", NULL);
      return 0;
      }

  81. ngocduong says:

    bạn ơi bạn có thể chi mình bài này được không……Viết chương trình multithread trong bài toán nhân ma trận. Đọc vào 2 ma trận A & B, sau đó dùng nhiều thread này để thực hiện việc nhân ma trận. Ghi ma trận kết quả ra file.

  82. lan anh says:

    chào a!a có thể cho e xin 1 it tài liệu lý thuyết phần đọc ,ghi file(cả file nhi phân và văn bản) và phần lớp ko ah .Em cảm ơn !

  83. San says:

    Chào bạn mình có 1 câu hỏi thế này!!!

    Mình viết ứng dụng MFC với Dialog base, mình đặt biến cho các Edit box kiểu CString nhưng khi ghi ra file thì không hiện kiểu text mà nó hiện kiểu hex @@

    VD mình có biết m_sName ứng với Ô nhập name, sau khi ghi ra file bằng lệnh

    File<<m_sName;

    thì nó ghi ra file 003FE3B chứ không phải là tên mà mình nhập vào, mình xử lý thế nào đây bạn, Mong bạn hướng dẫn giúp

  84. whiterabbit says:

    anh oi giúp bai tập này với!!
    Ứng dụng multithread trong bài toán nhân ma trận. Đọc vào 2 ma trận A & B từ file, sau đó dùng nhiều thread để thực hiện việc nhân 2 ma trận này. Ghi ma trận kết quả ra một file khác

  85. lan anh says:

    chào a!
    a có thể nói qua cho e cách làm bài tập này như thế nào được ko ah?
    cho class canhan(tên,địa chỉ,ngày sinh với các phương thức đi kèm)
    class sinhvien(tên lop,khoa,giáo viên cn)dan xuat tu lop canhan
    nhập danh sách sinh viên và ghi vào tệp
    e ko hiểu cách ghi vào tệp ntnao ah.a giúp e với!
    cảm ơn a ah!

    • Cách ghi dữ liệu vào tệp các bạn sử dụng giống như với cin>> và cout<<. Bạn muốn ghi dòng nào ra cứ làm tương tự cout<>. Còn chi tiết làm thế nào thì bạn chịu khó đọc bài viết trên nhé. 😀
      Nếu có thời gian mình sẽ cập nhật thêm về các kỹ thuật cho bài viết này để nó chất lượng hơn. Nhằm giảm thời gian tìm kiếm của các bạn.

  86. Hì, anh Thanh Cường nếu được giúp em phần “sườn” code C++ tạo từ điển này với 😀
    Em đọc cái đề là không biết bắt đầu từ đâu rùi
    Xây dựng chương trình học từ vựng tiếng Anh

    -MÔ TẢ YÊU CẦU

    Chương trình gồm có các chức năng chính sau:
    – Quản lý từ vựng
    – Học từ vựng, sử dụng phương pháp Rewise.
    – Đánh giá kết quả học.
    -Từ vựng được lưu dưới dạng file text.
    Đề bài nó hơi dài nên em up nó lên đây, anh xem hộ em với 😀
    http://www.mediafire.com/?3wx9996e3543xqa
    Em tìm thấy có cái code quản lí thư viện này, gần giống như cái em cần, chỉnh lại chút cũng đc mà em hông biết nối mấy đoạn code lại với nhau, hì anh giúp
    http://www.mediafire.com/?no70zwv7p5c6eq7

  87. lan anh says:

    thanks a!

  88. lan anh says:

    cảm ơn anh nhiều lắm ,h e hiểu rồi ah.

  89. Long says:

    bạn có thể giúp mình bài tập này ko nó dc viết trên chương trình tương thích giữa 2 File
    mình đã tạo sẵn 1 file là Hàng Hóa.TXT ( GỒm STT , tên, Soluong hàng Hóa )
    nó kêu mình là viết chương trình để xuất ra 1 file gọi la OutPut1.txt chứa hàng hóa có độ dài tên hàng hóa tăng dần
    và 1 bài nó kêu minh xuất ra 1 file OutPut2.TXT chứa các Chứng Từ có số lượng Chứng Từ lớn nhất ( file CHứng Từ Cũng tạo sẵn gốm: STT,ngày,So luong Chung Tu)

  90. MrChip says:

    Em đang viết chương trình quản lý thông tin nhân viên nhập liệu ra file Employee.txt. anh chỉ em cách đọc file Employee.txt và lưu vào nơi nào ấy . Để mà sau này ta có thể tim kiếm , xóa , sữa thông tin nv.
    VD : Khi ta nhập mã số nv thì sẽ hiển thị các thông tin nv ấy.
    đây là chương trình em tự viết : http://www.mediafire.com/?sx14jysk8g9kega
    Chủ yếu là cách đọc file tất cả các thông tin mới – cũ và ta có thể tiến thành các thao tác với file.
    Cảm ơn anh nhá !. giáng sinh ấm ấp. ^.^

  91. Đinh Thu Trang says:

    Mình đang có bài này cần giải gấp mức 2 và mức 3. Mức 1 mình làm được rồi. Bạn nào có ý giúp mình pm Y!M trang_th_s2 nhé. tks all ạ

    MỨC 1.

    Xây dựng một chương trình quản lý sinh viên trong đó kiểu dữ liệu cấu trúc mô tả một sinh viên có dạng sau:
    typedef struct
    {char masv[10], hoten[30];
    float toan; (1)
    float ly;
    float hoa;
    float dtb;
    } NhanSu;

    Hãy khai báo một mảng a (tĩnh hoặc động) có kiểu dữ liệu là NhanSu để lưu danh sách các sinh viên của cơ quan. Mảng có cỡ cực đại là nmax được định nghĩa trước trong phần các chỉ thị tiền xử lý (sử dụng lệnh #define…). Biến nguyên count chỉ số người trong danh sách. Ban đầu count = 0, tức là danh sách còn rỗng. Chương trình gồm thực đơn với các mục chọn sau đây:
    1. Khởi tạo danh sách.
    2. Nhập k sinh viên.
    3. Xem danh sách sinh viên.
    4. Sắp xếp danh sách theo thứ tự tăng dần theo dtb.
    5. Kiểm tra xem danh sách đã sắp xếp chưa.
    6. Tìm kiếm tuyến tính theo hoten.
    7. Tìm kiếm nhị phân theo dtb.
    8. Xóa sinh viên có masv = xMasv (nhập từ bàn phím).
    9. Chèn một sinh viên vào danh sách đã sắp xếp sao cho tính sắp xếp vẫn được bảo tồn.
    Z. Kết thúc.
    Giải thích các chức năng:
    1. Khi khởi tạo danh sách nếu là mảng tĩnh thì ta chỉ cần đặt lại count=0 để chỉ ra rằng danh sách rỗng, không có phần tử nào. Nếu là mảng động thì ta xóa vùng bộ nhớ đã cấp phát, sau đó cấp phát lại và đặt count=0.
    2. Khi gọi chức năng này ta nhập một số k, sau đó lần lượt nhập k người. Khi nhập chỉ cần nhập các trường masv,hoten, toan, ly, hoa; còn trường dtb thì tự tính toán. Trong chức năng này chưa cần hiện ra danh sách các sinh viên. (nên viết một hàm nhập một sinh viên, sau đó sử dụng hàm này để nhập k sinh viên).
    3. Chức năng này cho hiện ra trên màn hình danh sách toàn bộ các sinh viên. Nếu có được khuôn dạng đẹp thì càng tốt.
    4. Sắp xếp danh sách sinh viên theo thứ tự tăng dần của trường dtb.
    5. Viết hàm trả về giá trị đúng (=1) nếu danh sách đã sắp xếp, sai (=0) nếu danh sách chưa sắp xếp.
    6. Nhập một giá trị thực x rồi thực hiện tìm kiếm xem trong danh sách có ai dtb=x không. Nếu không có thì thông báo là không có, nếu có thì in ra màn hình toàn bộ những người có dtb=x.
    7. Kiểm tra xem danh sách đã sắp xếp chưa. Nếu danh sách đã sắp xếp thì nhập một giá trị thực x sau đó thực hiện tìm kiếm nhị phân xem trong danh sách có phần tử nào có dtb bằng x không. Nếu không có thì thông báo, nếu có thì cho hiện người tìm thấy trên màn hình.
    8. Nhập một chuỗi xMasv sau đó tìm người có masv=xMasv. Nếu tìm thấy thì hỏi có xóa không, nếu trả lời có thì xóa người đó khỏi danh sách.
    9. Nhập một người mới. Kiểm tra xem danh sách đã sắp xếp theo dtb chưa. Nếu chưa sắp xếp thì kết thúc, còn sắp xếp rồi thì chèn người mới vào sao cho toàn bộ danh sách vẫn được sắp xếp tăng dần theo dtb.

    MỨC 2.
    Các yêu cầu tương tự như mức 1, nhưng danh sách được cài đặt trên tệp nhị phân.
    Tuy nhiên khi thực hiện các thao tác sắp xếp, tìm kiếm thì có thể đổ vào mảng trong bộ nhớ để thực hiện, sau đó ghi trở lại tệp nếu cần (ví dụ với thao tác sắp xếp).

    MỨC 3.
    Các yêu cầu tương tự như mức 1, nhưng danh sách được cài đặt trên tệp nhị phân và các thao tác như sắp xếp, tìm kiếm cũng được thực hiện trực tiếp trên tệp.

    Cụ thể hơn, các mục chọn là:
    1. Khởi tạo danh sách.
    2. Nhập k sinh viên.
    3. Xem danh sách sinh viên.
    4. Sắp xếp danh sách theo thứ tự tăng dần theo Masv.
    5. Kiểm tra xem danh sách đã sắp xếp chưa.
    6. Tìm kiếm tuyến tính theo masv.
    8. Xóa sinh viên có masv = xMasv (nhập từ bàn phím).
    Z. Kết thúc.
    Giải thích:
    -Khi thực hiện mục “Xem danh sách sinh viên” thì trước hết đưa kết quả ra một tệp văn bản, sau đó cho hiển thị tệp văn bản ra màn hình. Nếu tệp lớn thì mỗi lần chỉ hiển thị 24 dòng rồi dừng lại, chờ nhấn phím mới hiện tiếp.
    – Sắp xếp danh sách trực tiếp trên tệp bằng phương bubble sort.

  92. Tuan Khanh says:

    Cam on ban rat nhieu

  93. namkaka says:

    banco the lam bai nay ko tim 1 chuoi trong 1 file minh dang lam tiu luan ma ko ro lam

  94. tien says:

    tai sao mjnh copy ve ma ko chay dk. no ci bao noi o system(“pause”); la do j vaj ban

  95. LEE says:

    sau đọc bài trên với bài ở liên kết này
    https://thanhcuong.wordpress.com/2011/01/20/cch-sinh-s%E1%BB%91-ng%E1%BA%ABu-nhin-trong-c-random-number-library-functions/

    e muốn kết hợp để viết chương trình sinh ra n số ngẫu nhiên trong khoản [0;100000] sau đó ghi ra file So_Ngau_Nhien.txt trong file này dòng đầu tiên là số phần tử từ dòng thứ 2 trở đi là các con số ngầu nhiên đc tạo ra.
    nhưng ctrình gặp lổi mình sửa hoài không được.
    a giúp với;

    #include
    #include
    #include
    #include
    using namespace std;
    int main()
    { int i;
    ofstream SNN (“So Ngau Nhien.txt”);
    SoChan<<"10000\n";
    for(int a = 1; a <= 10000; a++)
    {
    i=rand() % 100000;
    SNN<<i;
    SNN<<"\n";

    }
    SoChan.close();
    return 0;
    }

    • Đây là lỗi cú pháp khá cơ bản. Bạn nên sửa lại ở những chỗ sau:
      SoChan<<"10000\n"; sửa thành: SNN<<"10000\n";
      SoChan.close(); sửa thành: SNN.close();
      Lưu ý: đây là chương trình ghi ra file nên phải khai báo nclude .
      Bạn có thể tải source code mình giúp bạn tại: http://www.mediafire.com/?4udktuw3cz3qdgh

      • Lee says:

        e làm được rồi.nhưng giờ gặp phải lỗi tràn bộ nhớ khi biến n lên quá lớn.
        chẳng hạn số phần tử lên tới 10 triệu thì không được.
        a có thuật toán nào chỉ e với ?

      • Mình đã kiểm tra lại code hôm bữa gửi cho bạn. Số phần tử lên tới 10 triệu vẫn hoạt động bình thường vì kiểu int có giá trị nằm trong khoảng: -2147483648 đến 2147483647.

  96. xian says:

    Em đang học phần Sử dụng ofstream trong thư việ fstream để ghi file, cũng làm như anh hướng dẫn nhưng sau khi chạy chương trình (thành công) nó không có hiện ra file txt mà mình mới ghi, chỉ có tạo file đó trong C:\Windows\system32 mà thôi.
    Vậy làm sao hả anh? (Em sử dụng Visual C++ 6.0)

    • Những source code trong bài viết của mình viết chỉ khai báo đường dẫn tương đối. Tức là những file ghi hoặc đọc nằm cùng thư mục với file .exe của chương trình. Bạn chỉ việc sửa lại đường dẫn chính xác theo ý bạn là được. Ví dụ “C:\ten_file.txt”.

  97. xian says:

    #include
    #include
    using namespace std;

    //Doc file matran.txt da ghi

    int main()
    {
    int a[5][5];
    int n;
    ifstream matran (“matran.txt”);
    if(! matran.is_open())
    {
    cout<>n;
    for (int i=0; i<n; i++)
    for(int j=0; j>n;
    }
    for (int i=0; i<n; i++)
    {
    for(int j=0; j<n; j++);
    {
    cout<<a[i][j];
    cout<<" ";
    }
    cout<<"\n";
    }
    matran.close();
    system("pause");
    return 0;
    }

    //cho em hỏi tí nữa:
    1. khi em không dùng using namespace std; mà dùng các thư viên có thì báo lỗi ở dòng system(“pause”), vậy là sao ạ?
    2. chạy chương trình trên thì cửa sổ hiện ra vẫn là PRESS ANY KEY TO CONTINUE và không thấy gì nữa hết

    hic, giúp em với! Cảm ơn anh nhìu lắm ạ!

    • Thứ nhất: system(“pause”) là một lệnh chuẩn trong cmd của Windows.
      Thứ 2: khi sử dụng using namespace std; thì khi viết các hàm cin>>, cout<>, std::cout<<
      Thứ 3: Có thể bạn chưa để file "matran.txt" cùng đường dẫn với file thực thi của chương trình.
      Thứ 4: Chương trình trên bạn viết trên IDE nào mình cũng chưa rõ, các demo trên mình viết trên DevC++.
      Bạn có thể tải source code mình viết chương trình cộng hai ma trận về xem để hiểu rõ hơn cách thực hiện: http://www.mediafire.com/?j530717sc12g20n
      Chúc bạn thành công!

  98. Thanh Tiền says:

    chào Cường! giúp mình bài này nha ” viết một chương trình đọc vào 100 000 phần tử từ 1 file txt.
    dung hàm quick sort, selection sort va heap sort để sắp xếp. so sánh thời gian thực hiện, số phép gán và số phép so sánh giữa các thuật toán sắp xếp này.” đây là bài đồ án cuối kì của mình đó. rang giúp mình nha

  99. nam says:

    anh giúp em bài này với mở 1 file txt trong bất kì ổ đỉa rồi tìm chuỗi trong file txt đó.giúp em với anh.

    • Bạn đọc lại bài viết trên, trong đó có phần tìm kiếm trên file text. Còn về đường dẫn đến file text thì bạn có thể sửa đổi lại source xíu, thay đường dẫn tuyệt đối đến file bằng một biến để nhập đường dẫn vào.

      • namkaka says:

        em cũng chưa rành về mấy cái này lắm a có thể nói rõ hơn cho em được không. bài này là tiểu luận lập trình c của em sắp nộp rồi anh ơi.

  100. mitoom says:

    Chào bạn, mình đang có 1 bài tập về nhập xuất file, mình đã làm theo cách của bạn nhưng chỉ đúng phần xuất file, còn phần đọc file không biết lỗi chỗ nào mà nó đọc không đúng. Đây là bài làm của mình, bạn có thể xem giúp nó lỗi chỗ nào ?
    SoNguyen.CPP( Xuất file)
    #include
    #include
    #include

    using namespace std;

    int main()
    {
    srand(time(0));
    int dem = 0;
    ofstream SoNguyen (“SoNguyen.txt”);
    SoNguyen<<"Day so 10000 so nguyen \n";
    for(int a = 1; a <= 10000; a++)
    {
    dem ++;
    SoNguyen<<rand();
    if (dem%10==0)
    SoNguyen<<"\n";
    if (dem%10!=0)
    SoNguyen<<"\t";
    }
    cout<<dem;
    SoNguyen.close();
    system("pause");
    return 0;
    }
    ————————————————–
    ReadSoNguyen.CPP (Đọc file)
    #include
    #include
    #include
    using namespace std;

    int main()
    {
    int a[10001];
    ifstream SoNguyen (“SoNguyen.txt”);
    if(! SoNguyen.is_open())
    {
    cout<<"Khong the mo file.\n";
    return 0;
    }
    else
    {
    for(int i = 1; i >a[i];
    }
    }
    for(int i = 1; i <= 10000; i++)
    {
    cout<< a[i] <<" ";
    if (i%10==0)
    cout<<"\n";
    if (i%10!=0)
    cout<<"\t";
    }
    SoNguyen.close();
    system("pause");
    return 0;
    }
    —————————————————
    Còn đây là đề bài tập hoàn chỉnh của nó :
    Viết chương trình tạo tập tin nhị phân chứa 10000 số nguyên bất kỳ ghi vào file
    SONGUYEN.INP. Mỗi dòng 10 số, sau đó viết chương trình đọc file SONGUYEN.INP,
    sắp xếp theo thứ tự tăng dần và lưu kết quả vào file SONGUYEN.OUT. Dùng ngắt để in ra kết quả có trong file SONGUYEN.OUT lên màn hình

    P/s : Đây là bài tập của môn Lập trình hệ thống (ngôn ngữ ASM), cho nên cái vế cuối của bài này nó bắt sử dụng hàm ngắt, nếu được bạn có thể giúp mình lun phần sau được không.
    Thank !

  101. hung says:

    a giup e bai nay voi dc ko a: Viết chương trình tạo file văn bản có tên là “MATRIX.INP” có cấu trúc như sau:
    -Dòng đầu ghi hai số m, n.
    -Trong m dòng tiếp theo mỗi dòng ghi n số và các số các nhau một khoảng cách.
    Hãy kiểm tra xem trong file đó có bao nhiêu số nguyên tố.
    Kết quả cần ghi vào file “MATRIX.OUT” có nội dung là một số nguyên đó là số lượng
    các số nguyên tố trong file “MATRIX.INP”.
    Dùng ngắt in ra nội dung trong file MATRIX.OUT

    Mog a rep e voi nha, mong 5 e phai nop bai roi

    • Cái này đơn giản thôi mà. Bạn đọc lại bài viết trên phần đọc số từ file ma trận vào mảng, sau đó viết thêm phần tìm số nguyên tố trong mảng. Rồi xuất file đó ra. Nếu bạn đọc kỹ bài viết trên hoàn toàn có thể làm được bài này. Nếu có vấn đề gì bạn để lại comment mình sẽ giải thích.

  102. lâm tuấn says:

    các pro ơi.các pro có thể giúp e viết code cho nút lệnh tách tập tin theo kiểu nhị phân và gộp tập tin theo kiểu nhị phân trong visual koa được ko ? e đang cần gấp.nếu được thì em xin cảm ơn các pro trước.

  103. trang says:

    Có bạn nào giúp mình với mai mình thi rồi:
    Nhập vào ma trận vuông cấp n.
    Câu a: Tính tổng tất cả các chữ số trong ma trận.
    Câu b: Đếm xem có bao nhiêu chữ số khác nhau trong ma trận.

    Vd.
    File MATRAN.INP
    4
    23 44 5 6
    12 5 23 8
    1 6 4 9
    111 5 66 9
    File MATRAN.OUT
    Câu a: 94
    Câu b: 12

  104. trang says:

    code bằng c free
    cám ơn các bạn nhiều

  105. saobaccuc says:

    bạn giúp mình tạo 1 data.txt gồm danh sách sinh viên đc k? thanks!

  106. bienkhongcat says:

    bạn có thể giúp mình bài tập về C++ được không mình đang cần gấp :-s
    Xây dựng chương trình với các chức năng:
    – nhập,hiển thị ma trận
    – tính tổng, hiệu, tích 2 ma trận
    – tính ma trận chuyển vị của 1 ma trận
    – tính ma trận nghịch đảo của 1 ma trận
    – các thao tác tìm kiến trên hàng, cột của ma trận
    – bổ sung, loại bỏ 1 hàng (cột) của ma trận
    – có menu cho phép lựa chọn chức năng.
    Mình đang học về cái này nhưng gà quá
    Bạn nào có thể bớt chút thời gian giúp mình được không, làm ơn làm ơn :-s

  107. ky duyen says:

    chỉ cho em cách làm bài này với: tính x mũ y với x,y được cho trong file BT.INP. kết quả xuất ra màn hình. em cám ơn nhìu

    • Cái này chỉ đơn giản bạn đọc hai số x, y vào hai biến chương trình rồi sử dụng hàm pow(x, y) có trong C++. Tiếp đó ghi kết quả ra file BT.INP là được.

  108. hang says:

    NHANSU
    Tên thuộc tính Kiểu thuộc tính
    MANS char[4]
    HOTEN char[30]
    PHAI char
    TEL char[10]

    PHIEUXNHAP
    Tên thuộc tính Kiểu thuộc tính
    MAXN char[6]
    NDUNGXN char[30]
    NGAYXN char[10]

    LOAIXN char

    PHIEUBNHAN
    Tên thuộc tính Kiểu thuộc tính
    MABN char[6]
    NDUNGBN char[30]
    NGAYBN char[10]

    SANPHAM
    Tên thuộc tính Kiểu thuộc tính
    MASP char[6]
    TENSP char[30]
    DVITINH char[30]

    Ý nghĩa
    Mã số nhân sự
    Họ và tên
    Giới tính (Y/N)
    Điện thoại

    Ý nghĩa
    Mã phiếu xuất nhập
    Nội dung xuất nhập
    Ngày ghi phiếu xuất
    nhập
    Loại phiếu xuất (Y),
    Loại phiếu nhập (N)

    Ý nghĩa
    Mã phiếu biên nhận
    Nội dung biên nhận
    Ngày ghi phiếu biên
    nhận

    Ý nghĩa
    Mã sản phẩm
    Tên sản phẩm
    Đơn vị tính

    CHITIETXNHAP

    Tên thuộc tính Kiểu thuộc tính Ý nghĩa

    SLUONGXN int Số lượng xuất/nhập

    DGIAXN long Đơn giá (tính theo VNĐ)

    CHITIETBNHAN

    Tên thuộc tính Kiểu thuộc tính Ý nghĩa

    SLUONGBN int Số lượng biên nhận

    DGIABN long Đơn giá (tính theo VNĐ)

    III. YÊU CẦU ĐẶT RA :
    Dùng kỹ thuật lập trình hướng đối tượng với ngôn ngữ C++, Anh chị hãy giúp nhóm sinh viên trên viết chương trình Demo để thực hiện các công việc sau:

    1. Thiết kế hoàn chỉnh các lớp trên với các dữ liệu thành viên và hàm thành viên cần
    thiết.
    2. Định nghĩa các quan hệ giữa các lớp.
    3. Tái định nghĩa các toán tử xuất nhập (<>) để đọc, lưu và hiển thị thông tin
    của các đối tượng trong hệ thống. Với luồng xuất nhập có thể là tập tin hay luồng
    nhập xuất chuẩn trong C++
    4. Thiết kế hàm main để giải quyết yêu cầu đặt ra cho bài toán :
    a. Nhập và lưu thông tin của các sản phẩm vào tập tin dữ liệu. Sau đó đọc từ
    tập tin dữ liệu để in ra danh sách các sản phẩm.
    b. Ghi nhận lại các hoạt động xuất nhập kho hàng vào tập tin dữ liệu:
     Nhập và lưu thông tin của các phiếu nhập
     Nhập và lưu thông tin của các phiếu xuất
     Nhập và lưu thông tin của các phiếu biên nhận
     Sau đó đọc từ tập tin dữ liệu để in ra danh sách các phiếu
    c. Tìm kiếm sản phẩm trong kho hàng theo các yêu cầu khác nhau: tìm theo
    mã số, tên sản phẩm. Kết quả tìm kiếm là hiển thị thông tin các sản phẩm thỏa mãn điều kiện.
    d. Tìm kiếm phiếu xuất, nhập và in thông tin chi tiết của phiếu xuất, nhập.
    e. In bảng thống kê các sản phẩm trong kho hàng theo tên, số lượng, đơn giá,
    ngày nhập.
    f. Khi có một phiếu xuất được gửi đến, căn cứ vào tên sản phẩm-số lượng-
    đơn giá chương trình sẽ giúp cho thủ kho xác định hàng tồn là đáp ứng với
    đòi hỏi hay không để xuất hàng.
    g. ……………………………………………………

  109. hang says:

    giup mih joj

  110. anhthoai says:

    chào ban!mình có 2 file text mình muốn ghép nó vào 1 file text thứ 3 vậy mình làm sao!minh đang viết c++,sử dung fstream!mong ban chỉ gấp.mình sắp op bai rồi!

  111. Tia Sáng says:

    Anh cho em hỏi cái nì tí:
    Giả sử em có file text chứa các đoạn văn như sau:
    1 Anh hay chon lay mot muc dich, no co the la muc dich duy nhat cua doi anh.
    2 Ai khong co muc dich thi khong the thay niem vui trong bat ky cong viec gi. Can nho chung ta ton tai de lam gi va chung ta dang co dat toi cai gi.
    3 Bao gio cung phai luon luon co mot noi nao do de den.
    4 Ban hay yeu tu do hon tat ca va lam dieu thien o bat cu noi nao co the.
    5 Cong cha nhu nui thai son. Nghia me nhu nuoc trong nguon chay ra. Mot long tho me kinh cha. Cho tron chu hieu moi la dao con.

    Thì làm sao e chọn ngẫu nhiên 1 đoạn văn trong file text trên.
    vd: ngẫu nhiên ta chọn đc đoạn văn “3 Bao gio cung phai luon luon co mot noi nao do de den.”
    Mong a hồi âm sớm :-s

  112. Triết says:

    Cho mình hỏi nếu file text nằm ở ổ đĩa D. Đường dẫn D:\Tap tin\File text\ bai tap.txt
    Thì code đọc file đó như thế nào ?

  113. Luu says:

    bạn ơi,giúp mình làm bài này với:nhân ngày nhà giáo Steve muốn mua 1 bó hoa thật có giá trị nằm trong phạm vi số tiền mình có là c đồng. Cửa hàng có bán 2 loại hoa: hoa đồng tiền với giá a đồng 1 bông, hoa lay ơn với giá b đồng 1 bông(a<b). Steve muốn mua được càng nhều hoa càng tốt và giá trị của bó hoa phả là lớn nhất (dĩ nhiên không vượt quá số tiền mình hiện có).
    Yêu cầu: cho 3 số nguyên a,b,c (1<=a<b<=100, 0<=c <=1000). Hãy xác định giá trị của bó hoa mua được.
    Dữ liệu: vào từ file văn bản FLOWERS.INP gồm 1 dòng chứa 3 số nguyên a,b và c.
    Kết quả: Đưa ra file văn bản FLOWERS.OUT gồm 1 số nguyên- giá trị của bó hoa mua được.

  114. thanh khoa says:

    a ơi giúp e cái này được không? e không hiểu mấy cái lệnh $add, $find,….. trên file txt

    Chương trình sẽ dùng tham số dòng lệnh để nhận vào 2 tập tin đầu vào và đầu ra.
    1. Tập tin đầu vào sẽ gồm nhiều dòng, mỗi dòng sẽ là một lệnh. Các lệnh có thể có trong tập tin đầu vào
    được liệt kê trong bảng bên dưới:
    STT Lệnh Cú pháp Diễn giải
    1 $add $add key
    Thêm phân tử có khóa key vào cây nhị phân tìm kiếm. Nếu phần tử có
    khóa là key đã tồn tại trong cây rồi thì không thêm vào cây nữa và xuất ra
    giá trị -1, ngược lại xuất ra giá trị 1
    2 $find $find key
    Tìm phần tử có khóa là key. Nếu tìm được thì xuất 1, ngược lại thì xuất -1
    ra tập tin đầu ra
    3 $del $del key
    Tìm và xóa phần tử có khóa là key ra khỏi cây. Nếu tìm được thì xuất 1,
    ngược lại thì xuất -1 ra tập tin đầu ra
    4 $print $print order
    In cây ra tập tin đầu ra với qui ước: số nguyên n đầu tiên là số phần tử củcây, n số nguyên sau đó là giá trị của từng phần tử trong cây, theo thứ tựorder (preorder, inorder, postorder), mỗi số cách nhau 1 khoảng trắng.
    5 $des $des Hủy cây

  115. kunkka says:

    anh ơi cho em hỏi:ví dụ em đã có file text tạo ra với dữ liệu có sẵn bằng cách viết ra.bây giờ trong chương trình đọc có cách nào sửa thông tin đó mà không cần sửa trực tiếp ở file text không anh?

    • Bạn viết đoạn lệnh đọc file text mà bạn đã có rồi thay đổi nội dung trong đó. Phần đọc và ghi trong bài viết trên mình đã nói rõ. Bạn đọc kỹ & hiểu sẽ làm được thôi. 🙂

  116. Hong-su says:

    anh cho em 1 vài ví dụ cộng giải thích về phần overloaded đươc không ah?

  117. trung says:

    chao anh ! anh oi chi giùm em bài này giải bằng cau truc du lieu voi em can gap lam:
    Viết chương trình tính giá trị biểu thức với các số nguyên lớn. Biểu thức chứa các phép toán
    + , – , * và các cặp dấu ngoặc. Thứ tự ưu tiên phép toán theo thứ tự là *, +, –
    Dữ liệu đọc vào từ tập tin “input.txt” có cấu trúc như sau:
    – Dòng đầu tiên là số nguyên N cho biết số lượng biểu thức.
    – N dòng tiếp theo, mỗi dòng là một biểu thức .
    Kết quả xuất ra tập tin “output.txt” có cấu trúc như sau:
    – Gồm N dòng (tương ứng với số lượng biểu thức đọc vào). Mỗi dòng là kết quả
    của từng biểu thức đọc vào.
    Ví dụ:
    Input.txt
    5
    12345678909+787653739202
    (1234567890918234+7876537392028372)*9111105282946606
    (1234567890918234+7876537392028372)*9111105282946606+123456789
    7373939373729293838-23293239292
    ((7373939373729293838-23293239292)+12345678909)*9111105282946606
    Output.txt
    799999418111
    7288878924705342811482381266
    7288878924705342811605838055
    7373939350436054546
    67184737884368581139411974888903730

  118. Đức Real says:

    cảm ơn anh bài viết rất hay!!
    nhân tiên anh cho em hỏi: em đang làm bài tập nó yêu cầu đọc vào 1 file chứa văn bản gồm nhiều dòng (mỗi dòng có tối đa 81 từ) và có cả dòng trống vậy anh có thể chỉ giùm em làm sao phân biệt được dòng trống đó và mối dòng có kí tự đó em đọc nguyên vào 1 con trỏ lưa được không ạ

  119. thanh says:

    bạn có thể giúp mình cái này không đọc được ma trận đồ thị có dạng sau ! được biểu diễn bởi ma trận kề liên thuộc
    đây là code 2 hàm 1 hàm tạo và ghi file “Ma tran ke.txt”
    và một hàm đọc ma trận vừa ghi

    void sinh()
    {
    srand(time(0));
    cout<>num_node;
    cout<<"\n\n";
    // num_node = rand()%(301-5+1)+5;
    //sinh ngau nhien so dinh cua do thi
    graph = new int *[num_node];
    for (int i=0 ; i<num_node ; i++)
    {
    graph[i] = new int [num_node];
    }
    //sinh ngau nhien ma tran ke chua cac dinh
    for (int i=0 ; i<num_node ; i++)
    {
    graph[i][i] = 0;
    for (int j=i+1 ; j<num_node ; j++)
    {
    graph[i][j] = rand()%2; //sinh cac so ngau nhien trong khoang [0,1]
    graph[j][i] = graph[i][j];
    }
    }
    // ghi vao file
    ofstream matranke("Ma tran ke.txt");
    matranke << num_node << "\n";
    for (int i=0 ; i<num_node ; i++)
    {
    for (int j=0 ; j<num_node ; j++)
    {
    matranke << graph[i][j];
    }
    matranke << "\n";
    }
    matranke.close();

    //in ra man hinh
    for (int i=0; i<num_node ; i++)
    {
    cout<<"\n";
    for (int j=0; j<num_node; j ++)
    {
    cout<<graph[i][j];
    }
    }

    }

    //— ham doc tu file .txt —————————————————–

    void doc()
    {
    // doc tu file
    ifstream ReadFile ("Ma tran ke.txt");
    if(ReadFile.fail())
    {
    cout <>num_node;
    // cout <<"do thi co "<< num_node <<" dinh"<< "\n";
    // getch();

    graph = new int *[num_node];
    for (int i=0 ; i<num_node ; i++)
    {
    graph[i] = new int [num_node];
    }

    for (int i=0; i<num_node ; i++)
    {
    for (int j=0; j> graph[i][j];
    // cout << graph[i][j];
    }
    // cout << endl;
    }
    // ReadFile.close();
    }
    for(int i = 0; i < num_node; i++)
    {
    for(int j = 0; j < num_node; j++)
    {
    cout<<graph[i][j];
    cout<<" ";
    }
    cout<<"\n";
    }
    ReadFile.close();
    system("pause");
    cout<<"\n\n";
    }

    mình tạo ra ma trận ví dụ:
    10 // số đỉnh của đồ thị
    0110011100
    1011101001
    1101110011
    0110100110
    0111001111
    1010000011
    1100100101
    1001101011
    0011110100
    0110111100

  120. Đạt says:

    Em K6 nè anh.em đang thắc mắc cái này anh giúp em với.em có 1 file text.nội dung bao gồm cả chữ và số nguyên:
    Vd hello 1 2 3 4 5
    em muốn đọc những cái này ra file.em dùng fscanf(fp,”%d”,&a[i]); á mà ko đc khi ghi ra lại báo lỗi vì em nghĩ nó đọc luôn cả mấy cái kí tự là chữ “hello” á nên nó lỗi.có cách nào lọc ra đc các con số 1 2 3 4 5 ko anh.help em với

  121. Ngoc Duy says:

    anh oi em co mot van de la em muon doc mot file .txt va lay du lieu tu trong file nay voi kieu du lieu la 32 bit integer giong nhu vay:
    757935403 170601773 170601773 170601773 544999979 538976380 175906848 175906848 175906848 175906848 175906848 538976380 538976380
    roi sau do chuyen sang ma ASCII thi em phai lam sao? thu 4 nay em nop bai roi!!!
    anh co the chi giup em duoc ko?

  122. Chieu says:

    Chào bạn,
    Trong C++, tôi muốn đọc vào một thư mục chứa nhiều file dữ liệu text để xử lý, tính toán trên từng file. Vậy làm thế nào để đọc được toàn bộ các file trong thư mục. Thanks bạn!!!!!!!!!!!

  123. thanhtran says:

    Vậy phải tạo 1 mảng có số lượng trước rồi mới cho nó vào cái mảng đó hả anh .có cách nào mà đọc file rồi lấy số lượng ghi trong file (dòng đầu tiên ) rồi mới cho độ lớn của mảng ko anh ?

  124. Dieu says:

    e đang có một bài tạp làm về file với file TuDien.DAT, e không biết cách khởi tao file nó như thế nào cả, cũng không biết cách thúc hoạt động của file như thế nào hết, đọc cái bài của anh hướng dẫn đó và e đã chạy thử trên máy bằng visual studio nhưng nó không hiện ra giống giao diện giống như của a đó mà chỉ màn hình chỉ hiện ra một chút rồi tắt luôn mà không có thông tin gì trong đó cả. cũng không thấy chương trình nó báo lỗi gì hết . e không hiều vì răng lại bị như rứa a có thể giải thích cho e biết được không , e cảm ơn anh nhiều. nhờ anh chỉ dẫn cho e biết cách khởi tạo file từ điển như thế nào với luôn

    • Để dừng màn hình cmd bạn dùng lệnh system(“pause”); trước return 0; ở cuối chương trình.
      Mình nghĩ file .Dat để lưu từ điển mà bạn muốn làm cũng giống như với việc tạo file .txt thôi. Do đó bạn cứ sửa lại lại phần file .txt thành .dat là được. Bạn cũng có thể liên hệ với mình theo các thông tin trong trang sau: https://thanhcuong.wordpress.com/about/

      Chúc bạn thành công.

  125. Dieu says:

    dạ em cảm ơn anh nhé , nhưng mà tại sao chương trình của anh viết ở trên e về chạy thử nó lại không hiện ra giống như của a dó mà lại chỉ hiện ra màn hình đen rứa thôi và mình nhấn phím bất kỳ thì nó tắt anh à, chơ không hiện ra như file So Chan giống như của anh đó. vì em chưa hiểu vấn đề về cách giải quyết các bài tập về file lắm. Em cảm ơn a nhiều nhé.

  126. binh says:

    Anh ơi !
    Em cần đọc 1 dòng gồm toàn là số trong 1 file theo hàng ngang khong biết trước độ dài và nhập các số này vào một mãng, em không biết làm cách nào để kiểm tra độ dài, vui lòng giúp em. cảm ơn anh rất nhiều!!???

  127. Tran van thanh says:

    Hi All
    Mình đang có đề tài này , xin hỏi ai có share cho mình với . Helppppppppppppppppp meeeeeeee
    Tìm hiểu về cách thức đọc và ghi file trong lập trình hướng đối tượng. Gồm có hai loại file: file nhị phân và file văn bản. Viết ví dụ minh họa cho hai loại file trên

  128. ledungsay says:

    anh ơi nhờ giúp em cái này ah. vì em mói học c++ nên em ko hiểu lắm ah.mong anh giúp em.cảm ơn anh.cho em cai code
    Cho tệp văn bản input.txt, mỗi dòng gồm hai số nguyên dương cách nhau ít nhất một ký tự trống. (1 điểm)
    a. Viết hàm tính ước chung lớn nhất của 2 số nguyên dương a, b.
    b. Áp dụng hàm trên viết hàm tính bội chung nhỏ nhất của 2 số nguyên dương a,b

    c. Viết hàm main sử dụng hai hàm trên để tính ước chung lớn nhất và bội chung nhỏ nhất các cặp số đọc ra từ tệp input.txt. Kết quả ghi vào tệp văn bản output.txt theo dạng:
    a b ước chung lớn nhất bội chung nhỏ nhất (4 điểm)

  129. Võ Trọng Nghĩa says:

    Bạn ơi nếu mình muốn đọc theo đường dẫn thì làm thế nào.
    #include
    #include
    #include
    #include
    #include
    #include

    int main()
    {
    ifstream stream1(“C:\\Windows\\System32\\link\\txt.txt”);
    char a[10000];
    int c;

    if(!stream1)
    {
    cout << "Khong the mo file" <> a;
    cout << a<<" ";}
    }

    getch();
    return(0);
    }
    Mỗi lần đọc phải copy qua thư mục chứa code thì mệt quá nên đoạn code mình thay *.txt thành đường dẫn chứ file *txt mà nó không đọc được. Bạn giúp mình được không?

  130. Bảo Ngọc says:

    Anh ơi giúp em cái này với. Giờ em muốn đọc một file text như sau: đầu file là một đoạn text bất kì, đoạn text này bỏ qua, không đọc. Chỉ đọc các text nằm giữa 2 từ khóa begin và end thôi. Anh giúp em với nhé. Em cám ơn.:)

  131. dangtrinh says:

    Giúp mình bài C++ này với:

    Viết chương trình phát sinh ngẫu nhiên mảng số nguyên n phần tử (0<n<=20). Ghi mảng số nguyên này xuống file text theo định dạng sau:
    Dòng đầu tiên ghi số lượng phần tử trong mảng
    Dòng thứ hai ghi các phần tử số nguyên, mỗi số nguyên cách nhau 1 khoảng trắng.

    VD:
    5
    -20 89 33 104 66

    • Bạn kết hợp bài viết sinh số ngẫu nhiên của mình với bài viết này sẽ làm được.
      Bài viết này cũng có hướng dẫn cách ghi số chẵn lẽ thế nào rồi. Bạn chỉ việc áp dụng cách sinh số ngẫu nhiên vào ghi ra tương tự thôi. Mình không giúp bạn giải bài tập được.

  132. vtnghia says:

    Cho mình hỏi có cách nào nhập kí tự vào mà màng hình hiển thì dấu **** không bạn

  133. thanh says:

    giup mình xíu nha bạn
    mình đã đọc và ghi được file txt. nhưng với tên mặc đinh. mình muốn luu với tên mình tự nhập vào.
    mình đang thao tác trên winform. c++.
    code của mih
    doc file rồi add lên data grrid view.
    if (fdlg->ShowDialog() == System::Windows::Forms::DialogResult::OK)
    {
    StreamReader^ file = gcnew StreamReader(“6.txt”);
    while (!file->EndOfStream)
    {
    array ^ str = (file->ReadLine()->Split(‘,’));
    dgv->Rows->Add(str);
    }
    }

    ghi file lấy dự liệu từ data grrid view.
    StreamWriter^ sw = gcnew StreamWriter(“6.txt”);
    int rowcount = dgv->Rows->Count;
    for (int i = 0; i WriteLine(dgv->Rows[i]->Cells[0]->Value->ToString() +
    “,” + dgv->Rows[i]->Cells[1]->Value->ToString() +
    “,” + dgv->Rows[i]->Cells[2]->Value->ToString());
    }

  134. zenochu says:

    Anh ơi, có thể giúp em một chút được không ạ? Em có một file text dạng như thế này, và em muốn nhập dữ liệu vào mảng. Em đã thử viết nhưng không hiệu quả lắm.
    File text như thế này:
    END OF HEADER
    23 09 7 25 10 0 0.0 .389910768718D-03 -.227373675443D-12 .000000000000D+00
    .570000000000D+02 .283125000000D+02 .414124392800D-08 .117545554274D+01
    .151991844177D-05 .636597210541D-02 .120736658573D-04 .515359698105D+04

    Còn đây là code em viết

    void docfile()
    {
    char text[50];
    char a[20],b[20],c[20;
    int i;
    if(text=”END OF HEADER”)
    {

    fscanf(fv,”%d%d%d%d%d%d%d%s%s%s”,&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
    fscanf(fv,”%s%s%s%s”,&b[1],&b[2],&b[3],&b[4]);
    fscanf(fv,”%s%s%s%s”,&c[1],&c[2],&c[3],&c[4]);
    else
    exit();
    }
    Cảm ơn anh nhiều ạ

    • Hình như bạn chưa đọc bài viết của mình. Bạn chịu khó đọc sẽ làm được.

      • zenochu says:

        Em đã đọc lại rồi ạ. Trong bài viết của anh chỉ có phần đọc file text thôi còn em muốn chuyển dữ liệu vào mảng thì phải làm thế nào ạ? Mỗi hàng là một mảng một chiều, còn các phần tử trong mảng là một chuỗi được ngăn cách với nhau bằng dấu cách.

      • Bạn đọc kỹ phần đọc ma trận trong bài viết trên. Phần đó cũng đọc theo mảng đó bạn.

  135. Đá Tảng says:

    Anh có thể viết một bài về class được không.

  136. Leo says:

    Anh sử dụng những lệnh của hàm fstream ở đâu vậy ạ ! anh có thể post lên cho em học đc không ? cái đường link bên trên không có các tập lệnh trong ví dụ mà anh post lên ( VD trong cái bài tìm kiếm chuỗi ) …. Tks a trước nha ^^

  137. Nguyễn Trọng Linh says:

    Em đang làm bài tập về C++

    trong đó yêu cầu tạo 10 ma trận ngẫu nhiên 56×512….mỗi ma trận lưu ra 1 file output.txt….
    nếu tạo được sẽ xuất thông báo thành công..nếu không thành công sẽ tạo lại

    điều kiện là trong các ma trận đó thì khoảng cách giữa 2 cột cạnh nhau >7…..

    em tạo được ma trận ngẫu nhiên nhưng không biết cách làm thế nào để tạo ra 10 ma trận ngẫu nhiêu ra 10 file khác nhau…

    Anh giúp em với được không

    Thanks you so much!!!!1
    Thân!

    • Bạn có thể add skype của mình: thanhcuong1990 để mình nói chuyện trực tiếp với bạn về cách giải quyết. Vì mình không có thời gian để viết bài.

  138. TruongHoaiPhong says:

    Anh ơi! Em muốn ghi chuỗi vào file trong c++ nhưng khi em nhập chuỗi thì lúc ghi ra nó chỉ ghi tới khoảng trắng thôi, anh giúp em nha

    VD:
    nhap: Nguyen Van A
    ghi vao file txt: Nguyen

  139. nghiệp says:

    anh ơi em đang gặp khó khăn bởi một đề tai mà em không tim viếc code để chay ổn được anh giúp giùm em nhe! em cảm ơn anh nhiu.
    Tên đề tài:Sử dụng cây tìm kiếm nhị phân và hàm hash để đếm số lần xuất hiện của mỗi từ trong một tập tin.
    Đặc tả:
    Cho một tập tin văn bản gồm các từ tiếng Anh. Người ta cần liệt kê các từ trong tập tin và thống kê số lần xuất hiện của mỗi từ trong một tập tin.
    Để có thể quản lý, người ta cài đặt một cây tìm kiếm nhị phân, trong đó, mỗi nút có 5 trường có cấu trúc như sau:
    -Trường 1 kiểu double đóng vai trò là khóa của nút.
    -Trường 2 kiểu char* chứa mỗi từ.
    -Trường 3 kiểu int để chứa số lần xuất hiện của từ.
    -Trường 4 kiểu nút chứa con trỏ trỏ đến con trái nút.
    -Trường 5 kiểu nút chứa con trỏ trỏ đến con phải nút.
    Để có thể thực hiện tính toán số lần xuất hiện của các từ người ta thực hiện như sau:
    -Đọc từng từ trong tập tin cho đến khi hết tập tin.
    -Dùng hàm hash để phân tích từ và sử dụng nó như 1 khóa để tìm kiếm.
    -Tìm kiếm nút theo khóa.
    -Nếu không tìm thấy thì thêm mới nút vào cây với trường số lần xuất hiện là 1.
    -Nếu tìm thấy, thì cộng số lần xuất hiện của từ lên 1.
    Yêu cầu:
    Về lý thuyết:
    Tìm hiểu cách cài đặt và các thao tác cây tìm kiếm nhị phân.
    Tìm hiểu cách thao tác với tập tin thông qua ngôn ngữ C.
    Về chương trình:
    Xây dựng chương trình cho phép người dùng nhập vào tên của một tập tin .txt.
    Tiến hành tính toán theo giải thuật đã trình bày.
    Hiển thị các từ và số lần xuất hiện của chúng.

  140. Tuấn says:

    cho mình hỏi cách đọc vào 1 chuỗi kí tự, ví dụ Nguen Van A nếu sử dụng cách của bạn thì chỉ đọc được chữ Nguyen, mình muốn đọc được cả chữ Nguye Van A thì làm thế nào?

    • Bài viết trên mình có nói phần này rồi. Bạn đọc kỹ lại nhé, mục đọc file text đó.

      • ngocthuc says:

        Chào bạn mình đọc diễn đàn của bạn thấy bạn giỏi thật. Mình đang học TC Thầy cho bai về QLĐiểm. nhưng mình vẫn mô hồ lắm nhờ bạn giúp mình nữa nhé. Mình có một file Text rồi (có danh sách sv và điểm)
        1.Thiết kế bài toán QLD, Inrafile DSachQLD,
        2.Tim kiem sinh vien
        3.xóa tên trong danh sách
        4.

  141. No Name says:

    Cho tớ hỏi. Nếu một file text ghi như thế này: “Tuổi bạn là: 16”. Tớ chỉ muôn đọc số 16 bỏ qua phần chữ thì làm thế nào hả cậu?

  142. vnpublic says:

    bạn ơi mình có một file txt chứa các bộ giá trị (số nguyên, 3 cột nhưng ko biết bao nhiêu dòng), 1 dòng là một bộ (x,y,z)
    https://www.mediafire.com/?266o22ug1zgyyx5
    bjo mình muốn lấy giá trị của 1 hàng này lần lượt tính các công thức, cứ tính hết một bộ thì lặp lại với bộ khác (dòng khác)
    mình làm như thế nào được nhỉ?
    ví dụ: mình cần tính: A=x+y+z, B=x+y-z,C=x-y-2z, D=x*y*z; Kết quả lưu ra tệp với các cột tương ứng với A-B-C-D. Như vậy một hàng trong tệp đầu vào (x,y,z) sẽ cho một hàng tệp đầu ra (A,B,C,D) tương ứng ?

  143. duong says:

    Đề số 1:
    – Viết hàm “liệt kê số nguyên tố” để liệt kê n số nguyên tố đầu tiên. Ví dụ
    Input Output
    2 2, 3
    5 2, 3, 5, 7, 11
    7 2, 3, 5, 7, 11, 13, 17
    12 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37
    – Xây dựng chương trình đọc một tập tin input.txt , nội dung tập tin này chứa ở mỗi dòng là một số tự nhiên có giá trị trong khoảng [1, 100]. Chương trình đọc từng số tự nhiên n của mỗi dòng và ghi lại dãy n số nguyên tố đầu tiên tìm được vào tập tin output.txt.
    giup minh voi

  144. hoat paris says:

    tớ hỏi bạn tý ná. bây giờ tớ đã viết 1 hàm com sinh chuỗi nhị phân ngẫu nhiên rồi, đã lưu chuỗi đó vào file data.txt.. giờ tớ viết một hàm con khác nhưng muốn sử dụng dữ liệu từ file data.txt đó để tính toán.. cụ thể là lấy chuỗi nhị phân trong data.txt để tham gia vào phép toán chia cho một số nhị phân khác.. xin bạn và mọi người chỉ giáo. cám ơn rất nhiều

  145. Nguyễn Thu Hà says:

    trong bài ma trận ấy ạ. nếu ma trận không phải ma trân vuông thì làm thế nào lấy đc hàng và cột ạ?

  146. Huy Jonaitis says:

    cho mình hỏi là muốn lọc một dữ liệu gồm ngày/tháng/năm– tên công ty– doanh số bán hàng viết bằng C++ thì phải làm sao

  147. duc tuan says:

    – Viết hàm “kiểm tra số đối xứng” để kiểm tra một số nguyên dương n có phải là số đối xứng hay không. Ví dụ
    Input Output
    215 Không phải là số đối xứng
    5225 Là số đối xứng
    72327 Là số đối xứng
    12 Không phải là số đối xứng
    – Xây dựng chương trình đọc một tập tin input.txt , nội dung tập tin này chứa ở mỗi dòng là một số nguyên dương. Chương trình đọc từng số nguyên dương n của mỗi dòng và ghi vào tập tin output.txt dòng thông báo “Là số đối xứng” hoặc “Không phải là số đối xứng” tùy thuộc vào giá trị của n.
    ___________em chi biet viet chuong trinh chay duoc nhung hk biet tao file anh giup em voi_____
    #include
    #include
    #include
    using namespace std;
    int main()
    {

    int n,k,m;
    cout<>n;
    k = n;
    m = 0;
    while(k > 0)
    {
    m = 10*m + k%10;
    k = k/10;
    }
    if(n == m)
    cout<<"so ban vua nhap la :"<<n<<" la so doi xung";
    else
    cout<<"so ban vua nhap la :"<<n<<" la so khong doi xung";
    }

  148. tùng says:

    Dạ chào anh
    Giờ em đang làm bài đọc input.file txt,sau đó kiểm tra trong file output.txt đó có những ký tự nào liên tiếp giống nhau thì gom lại,ví dụ AAAAA thì output sẽ là 5A. Anh cho em hỏi là giờ dữ liệu trong file txt nó lộn xộn,không phải như dạng ma trận thì làm sao mình có thể truy xuất đến từng ký tự trong file input.txt ạ?

  149. thuans says:

    anh cho em hỏi là em có 1 file txt có rất nhiều số thực và chữ, dung lượng lên đến gần 4Mb thì e phải đọc thế nào ạ

  150. Nguyễn Hoàng Châu says:

    Admin giúp mình với, cũng đoạn code như trên, nhưng mình muốn để hàm nhập sẽ lấy dữ liệu từ file input.txt, sau đó ghi ngược ra lại file “ma tran la.txt” mả sao chạy ra file nhưng không có dữ liệu vậy ạ? helpme!
    #include
    #include
    #include
    #include
    using namespace std;

    void xuatmatran(ofstream &xuat)
    {
    int a[100][100];
    int n;
    ifstream MaTran (“input.txt”);
    if(! MaTran.is_open())
    {
    cout<>n;
    for(int i = 0; i < n; i++)
    {
    for(int j = 0; j >a[i][j];
    }
    }
    }
    }

    int main()
    {

    ofstream xuat(“ma tran la.txt”);
    xuatmatran(xuat);
    xuat.close();
    system(“pause”);
    return 0;
    }

  151. Kim Huyền says:

    cho em hỏi bài này của em có file Input.txt rồi mà run nên cứ hiện là ” Không tìm thấy tệp ”
    #include
    #include
    #include
    using namespace std ;

    class HocSinh
    {
    private:
    string MSV, Ten ;
    float Toan , OOP ;
    public:
    void Nhap(ifstream &FileIn)
    {
    // getline(FileIn,Ten,’-‘) ;
    getline ( FileIn, MSV ) ;
    getline( FileIn , Ten ) ;
    FileIn >> Toan ;

    FileIn >> OOP ;

    }
    void Xuat()
    {
    cout << "\n Ma SV : " << MSV ;

    cout<< "\n Ten : " << Ten ;
    cout<<"\n Toan : " << Toan ;

    cout<<"\n OOP : " << OOP ;

    }

    };

    int main()
    {
    HocSinh a[100] ;
    int size ;
    ifstream FileIn ( " Inputreadfile.txt " , ios_base :: in ) ;
    // ifstream FileIn ( " Inputreadfile.txt " ) ;
    // if( ! FileIn.is_open() )
    if( ! FileIn )
    {
    cout<> size ;
    for( int i = 0 ; i < size ; i++ )
    {
    a[i].Nhap(FileIn) ;

    }

    }

    for( int i = 0 ; i < size ; i++ )
    {
    cout<<"\n Thong tin HS thu " << i + 1 << " la : " ;
    a[i].Xuat() ;
    }
    FileIn.close() ;
    system("pause") ;
    return 0 ;
    }

    Anh xem giùm em với .
    Thank a 🙂

  152. tony sinh says:

    ban oi choi minh hoi siu,tai sao cai chuong trinh đoc file,mh lam nó chay ra sai số,mà minh copy cai cua ban thu chạy,no cung chay ra sai sô lung tung het.
    bạn có thể giải thích giúp minh có được khong?

  153. Tien Dat says:

    Đề 5: viết chương trình có sử dụng kiểu dữ liệu struct và định nghĩa các hàm để thực hiện các công việc sau: a) Nhập MSSV (số nguyên), họ lót (chuỗi), tên (chuỗi) và điểm (số thực) của không quá 20 sinh viên (2 điểm). b) Tìm các sinh viên có điểm thấp nhất và cao nhất (2 điểm). c) Tính điểm trung bình của các sinh viên (2 điểm). d) Tìm họ tên của sinh viên có MSSV được nhập từ bàn phím (2 điểm). e) Tìm tất cả sinh viên (gồm MSSV, họ tên và điểm) có tên giống với tên được nhập từ bàn phím (2 điểm).
    Hướng dẫn bài này dùm e lun ad

  154. Nhực Nguyễn Minh says:

    anh ơi em muốn chia 1 file ra thành nhiều file em phải làm sao anh.
    ví dụ như nhập k là điểm muốn chia file ra, thì nhâp k phải lớn hơn 2

  155. Đại Tích says:

    ad ơi ad giúp e xin code bài cài đặt bài toán tháp hà nội bằng cách nhập và xuất bằng file được không ạ????
    tkanks ad nhiều.

  156. anh ơi giúp e bài này vs e đọc mà ko hiểu
    cho tập tin văn bản number1.txt, dòng đầu tiên chứa số nguyên dương n (n 
    100), trong n dòng tiếp theo mỗi dòng chứa một số thực. 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
    b) Tìm giá trị nhỏ nhất và lớn nhất của các phần tử
    c) Tính trung bình cộng các phần tử
    d) Tính phương sai :
    phuongsai = 1/2phuogsai(i=1toi n)((xi-x)^2)
    Trong đó, x là trung bình cộng của các phần tử.
    e) Ghi tất cả kết quả thực hiện được vào tập tin number1.out

  157. ai giúp mình vs minh đang cần xin hậu tạ sau
    cho tập tin văn bản number1.txt, dòng đầu tiên chứa số nguyên dương n (n 
    100), trong n dòng tiếp theo mỗi dòng chứa một số thực. 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ìm giá trị nhỏ nhất và lớn nhất của các phần tử (2 điểm).
    c) Tính trung bình cộng các phần tử (2 điểm).
    d) Tính phương sai (2 điểm):
    phuongsai = 1/n∑_(i=0)^n▒〖(xi-x) ^2〗

    Trong đó, x là trung bình cộng của các phần tử.
    e) Ghi tất cả kết quả thực hiện được vào tập tin number1.out (2 điểm).

  158. ai giúp mình vs minh đang cần xin hậu tạ sau
    cho tập tin văn bản number1.txt, dòng đầu tiên chứa số nguyên dương n (n 
    100), trong n dòng tiếp theo mỗi dòng chứa một số thực. 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ìm giá trị nhỏ nhất và lớn nhất của các phần tử
    c) Tính trung bình cộng các phần tử
    d) Tính phương sai ():
    phuongsai = 1/n∑_(i=0)^n▒〖(xi-x) ^2〗

    Trong đó, x là trung bình cộng của các phần tử.
    e) Ghi tất cả kết quả thực hiện được vào tập tin number1.out (

  159. `cho tập tin văn bản number1.txt, dòng đầu tiên chứa số nguyên dương n (n 
    100), trong n dòng tiếp theo mỗi dòng chứa một số thực. 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 (
    b) Tìm giá trị nhỏ nhất và lớn nhất của các phần tử
    c) Tính trung bình cộng các phần tử
    d) Tính phương sai (
    phuongsai = (1/x)∑(i=0)^n▒〖(xi-x) ^2〗
    Trong đó, x là trung bình cộng của các phần tử.
    e) Ghi tất cả kết quả thực hiện được vào tập tin number1.out

  160. nguyen hai says:

    cho mình hỏi trong bài tìm kiếm chuỗi trong file txt, khi tìm thấy làm thế nào để biết chuỗi đó thuộc dòng nào trong file đó

  161. Cho 2 chuỗi tương ứng ở 1 file txt, yêu cầu sắp xếp tăng dần chuỗi 1 và chuỗi 2 tương ứng. Giúp giùm mk cái này với.

  162. ad cho mình hỏi
    mình đang code trò chơi ghi nhớ bằng C.
    trong quá trình chơi mình muốn dừng game tai thời điểm đó và mình muốn save
    Sau khi thoát game mình muốn vào tiếp tục chơi
    Vậy mình sử dụng phần tập tin ntn để làm đc như vậy
    thanks!

  163. Hoang Manh Trường says:

    ad cho em hỏi là : em đang lam một chương trình quản lý sinh viên,em đã lưu danh sach sinh viên vào file txt.vậy e muốn tìm kiếm sinh viên theo ma sinh viên trong file đã tạo thì làm sao ạ
    em cảm ơn!

  164. Lợi Trương says:

    anh chỉ em cách xuất file UTF-8 với ạ

Leave a reply to quang Cancel reply