Bir okul projesi için öğrenci veritabanı sistemi oluşturmaya çalışıyorum. Öğrenci kimliği için bir .txt dosyası arayacak ve dizedeki diğer tüm değişkenleri döndürecek bir işlev oluşturmaya çalışıyorum. Öğrencinin kimliğini txt dosyasının ilk satırında ararsam ancak başka bir satırda bir öğrenci ararsam hiçbir şey yakalamıyorsam, bu harika çalışıyor. Belli bir şey eksik miyim?C++ dosyasındaki .txt dosyasından çok satır okuma sorunu.
Öğrenci verileri, her satırda virgüllerle ayrılmış 16 dizedir. Öğrenci kimliği ilk dizedir.
Yardımlarınız için teşekkürler!
StudentType findStudent(int studentToFind)
{
ifstream inFile;
inFile.open("students.txt");
string currentLine;
string dataRead[16];
istringstream is;
int currentStudent;
if (inFile)
{
while (getline(inFile, currentLine))
{
is.str(currentLine);
for (int i = 0; i < 16; i++)
{
getline(is, dataRead[i], ',');
}
currentStudent = stoi(dataRead[0]);
if (currentStudent == studentToFind)
{
/*
Do stuff here
*/
inFile.close();
return foundStudent;
}
cin.ignore(); // Not sure if this is needed but I was trying to
// clear the \n char if that was causing the issue
}
}
}
Lütfen tüm sorununuzu buraya göndermeyin. sahip olduğunuz konu/soruyla doğrudan alakalı olmayan öğeleri kaldırın. Bu durumda, bu kodun yalnızca NONE'si önemlidir ... – UpAndAdam
Beklediğiniz gibi olduklarından emin olmak için her döngü yinelemesi için currentStudent ve studentToFind değerlerinizi kontrol etmek üzere bir hata ayıklayıcı (veya baskı ifadeleri) kullandınız mı? – Tuffwer
Tüm değerleri atadığım parçaları çıkardım, üzgünüm, tüm işlevlerin yararlı olacağını düşündüğüm varsayıldım. Ben bir breakpoint koydu ve currentStudent değeri asla yeni satırın değerine atanmış gibi görünüyor, bu yüzden onun bir sonraki hatta almıyor varsayıyorum. –