Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Đọc file txt lưu dữ liệu vào các biến như thế nào?

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    17

    Mặc định Đọc file txt lưu dữ liệu vào các biến như thế nào?

    Đây là cấu trúc file txt
    - H ở đầu là Huyện
    - 1 ở đầu là những Xã thuộc Huyện số 1
    - 2.... tương tự
    - L ở đầu là Lỵ
    - P ở đầu là Phường
    Code:
    BTA Tinh_BTA
    H H1 Huyen_So_1
    1 XA1 Xa_So_1_Thuoc_Huyen_1 50
    1 XA2 Xa_So_2_Thuoc_Huyen_1 30
    1 XA3 Xa_So_3_Thuoc_huyen_1 20
    H H2 Huyen_So_2
    2 XXA Xa_A_Thuoc_Huyen_2 25
    2 XXB Xa_B_Thuoc_Huyen_2 35
    L LYA Ly_Duy_Nhat
    P PH1 Phuong_So_1 15
    P PH2 Phuong_So_2 5
    Đây là code:
    Code:
       ifstream fin(tenfile);
    	string mat, tent;
    	fin>>mat>>tent;
    	cout<<mat.data()<<endl;
    	cout<<tent.data()<<endl;
                 //đã lấy được mã tỉnh là: BTA, tên tỉnh là: Tinh_BTA ở dòng đầu tiên.
    	string x1, x2, x3;
    	int x4 = 0;
    
    	while(fin>>x1>>x2>>x3>>x4)
    	{
    		if(x1 == "1")
    		{
    		    cout<<"Day la xa: "<<x2<<" ; "<<x3<<", dan so la: "<<x4<<endl;
            }
    	}
    
    	fin.close();
    Vấn đề:
    Mỗi string phân cách nhau bằng dấu "space" và em muốn mỗi string được truyền vào một biến. nếu em đọc fin>>x1>>x2>>x3 => thì chương trình sẽ đọc được dòng Xã đầu tiên là: 1 XA1 Xa_So_1_Thuoc_Huyen_1, nhưng không nhận được con số 50.
    Em muốn đọc được cả con số 50 đó để lưu vào 1 biến.
    Ai có cách giải quyết ko ạ?

    p/s: Khi em fin>>x1>>x2>>x3>>x4 thì chương trình không nhận biết được string nào dòng nào hết, và chẳng in ra cái gì. Tại sao lại vậy? Hay là lệnh fin>> chỉ đọc được 3 string x1,x2,x3 ???
    Đã được chỉnh sửa lần cuối bởi theanh3112 : 25-12-2008 lúc 09:22 PM.

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    http://forums.congdongcviet.com/show...B%8Dc+ghi+file

    xem ở đây để hiểu thêm nhé.
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    17

    Cảm ơn bạn, mình đã đọc rùi nhưng chưa giải quyết vấn đề này được. MOng các bạn giúp đỡ.

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    17

    Code:
       ifstream fin(tenfile);	
    	char ch[512];
    	
    	while (!fin.eof())
    	{
    		fin.getline(ch, 512);
    		cout<<ch<<endl;	
    				
    	}
    	fin.close();
    Còn đoạn này là em đọc được toàn bộ dữ liệu của file, xong chẳng biết làm cách nào để gán vào các biến được cả.
    Ví dụ em muốn gán:
    (theo cấu trúc file text trên) - dòng cuối.
    ma = "PH2";
    ten = "Phuong_So_2";
    danso = 5;
    Tương tự cho các dòng dữ liệu phía trên dòng cuối đó.

    Giúp em với. :((

  5. #5
    Ngày gia nhập
    12 2008
    Bài viết
    235

    Mình chỉ biết cách làm trên C thui
    Chưa học C++
    Nếu bạn cần mình làm thử cho nhé

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Đọc file txt lưu dữ liệu vào các biến như thế nào?

    Phải đi làm rùi nên tui viết sơ thôi, có thể viết tốt hơn tùy vào cách cậu xử lý mấy cái Xã, Huyện ra sao, nếu cậu quá tải toán tử >> cho Huyện Xã Tỉnh...ect thì sẽ xử lý dễ dàng hơn :
    C++ Code:
    1. #include <iostream>
    2. #include <sstream>
    3. #include <string>
    4. #include <fstream>
    5.  
    6. using namespace std;
    7.  
    8. int main()
    9. {
    10.     ifstream inf( "a.txt" );
    11.  
    12.     string line;
    13.  
    14.     while( getline( inf, line ) )
    15.     {
    16.         istringstream input( line );
    17.         string signal_word;
    18.         input >> signal_word;
    19.  
    20.         if( signal_word == "BTA" )
    21.         {
    22.             string BTA_name;
    23.             input >> BTA_name;
    24.             cout << signal_word << "->" << BTA_name << endl;
    25.         }
    26.         else if( signal_word == "H" )
    27.         {
    28.             string H_order, H_name;
    29.             input >> H_order >> H_name;
    30.             cout << signal_word << "->" << H_order << " " << H_name << endl;
    31.         }
    32.         else if( signal_word == "L" )
    33.         {
    34.             string L_order, L_name;
    35.             input >> L_order >> L_name;
    36.             cout << signal_word << "->" << L_order << " " << L_name << endl;
    37.         }
    38.         else if( signal_word == "P" )
    39.         {
    40.             string P_order, P_name;
    41.             int P_number;
    42.             input >> P_order >> P_name >> P_number;
    43.             cout << signal_word << "->" << P_order << " " << P_name << " " << P_number << endl;
    44.         }
    45.         else
    46.         {
    47.             int i_number;
    48.             string i_order, i_name;
    49.             input >> i_order >> i_name >> i_number;
    50.             cout << signal_word << "->" << i_order << " " << i_name << " " << i_number << endl;
    51.         }
    52.     }
    53.  
    54.  
    55.     return 0;
    56.  
    57. }

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    17

    Hay quá, cảm ơn bác rook nhiều nha. Đúng là đại cao thủ, em làm được rùi, với thuật toán trên theo của bác. . Cảm ơn bác lắm.

    p/s: Với C++ thì code trên của bác cần bỏ dòng:
    Code:
    istringstream input( line );
    Thay các biến input sau dòng đó thành
    Code:
    inf
    Cảm ơn bác nhìu. Thích quá!

  8. #8
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Hix bỏ cái gì bạn ơi istringstream :
    typedef basic_istringstream<char> istringstream;
    Standard C++ Library đó bạn :
    #include <sstream>
    Bro rox_rook viết Code chuẩn Standard C++ bạn không chạy được chắc là do IDE của bạn .
    I'm superman

Các đề tài tương tự

  1. Lấy dữ liệu từ file để gán vào biến trong lập trình C như thế nào?
    Gửi bởi tetuongrua trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 15-11-2012, 09:38 AM
  2. Database Truyền biến C# vào 1 file XSLT như thế nào?
    Gửi bởi gacongnghiep_cs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 13-06-2012, 12:07 AM
  3. Làm thế nào để biết file có đang được sử dụng bởi chương trình khác?
    Gửi bởi Click8A4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 18-06-2011, 01:59 PM
  4. Kỹ thuật C Thắc mắc cách nào để nhập chuỗi từ file vào biến
    Gửi bởi nasural trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 12-03-2010, 08:39 PM
  5. Cách ghi giá trị của một biến vào file hello.txt có sẵn trong C như thế nào?
    Gửi bởi Loveanygirls trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-04-2009, 11:18 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn