2016-03-20 33 views
-2

'da virgülle ayırma Bir .txt dosya satırını satır satır okumak ve her satırın içeriğini virgülle ayırmak zorundayım, böylece her satırda bir nesne oluşturabilirim. Sorun şu ki, her satırı nasıl okuyacağımı ve içeriğin bir karakterle (virgül, nokta, çizgi vb.) nasıl ayrılacağını öğrendim, sorun şu ki birini diğeriyle uygulamaya çalıştığımda, her şey çöküyor. Her satırı okuduktan sonraSatırları txt oku ve C++

135875,John,Smith 
460974,Jane,Doe 

yüzden, her hattı ve sandık her kişinin bilgilerini içeren nesneler ile bağlantılı liste okuyun:

Nihai sonuç metninde ben varsa, örneğin o olmalı Ben olmam icin mi koduyla neyin yanlış olduğunu bilemez kodunuzu görünmüyor .txt

user(int ID,String Name,String LastName); 
+0

Bizi çökerten kodu göstermeniz gerektiğini düşünüyorum. –

+0

Basit İngilizce kullanarak, bunu gerçekleştirmeyi beklediğiniz mantıklı bir süreç yazınız. Bunun için mantıklı bir süreçle karşılaşamazsanız, sorun C++ değil, mantıksal, hesaplama teorisi ve bilgisayar bilimi becerilerinin eksikliğidir. Ancak, önerilen algoritmanızı yazabilirseniz ve [sizin lastik ördekiniz sizinle aynı fikirde olabilirse] (https://en.wikipedia.org/wiki/Rubber_duck_debugging), o zaman sadece yazdığınız şeyi alın ve doğrudan çevrilebilir olmalıdır. C++ koduna. –

cevap

0

çıkarılan verilerle yapıcı çağırabilir. Ama burada bir dosyayı okumak ve yapmanız gereken şeyleri yapmak için bir kod pasajı var.

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 

using namespace std; 

int main() 
{ 
    ifstream ifs("test.txt"); 
    string line; 
    while (getline(ifs, line)) 
    { 
     istringstream iss(line); 
     int id; 
     string tmp,name,lastname; 
     getline(iss, tmp, ','); 
     // stoi is only supported in c++11 
     // Alternatively, you can use id = atoi(tmp.c_str()); 
     id = stoi(tmp); 
     getline(iss, tmp, ','); 
     name = tmp; 
     getline(iss, tmp, ','); 
     lastname = tmp; 
     cout << "id: " << id << endl; 
     cout << "name: " << name << endl; 
     cout << "lastname: " << lastname << endl; 
    } 
    ifs.close(); 
    return 0; 
} 
İlgili konular