У меня есть три строковых файла, которые будут храниться в динамическом массиве, но я просто попробую один из трех файлов для проверки, если это удалось, поэтому я сделаю так же, как обрабатывать три файла у меня есть. Цель я покажу строку, которую я получаю из файла, в ListView этот мой код.хранить строковый файл в динамическом массиве
void __fastcall TFrmNewPeta::showDefaultRute() {
std::string lineDataAwal;
std::ifstream ifs_Awal;
int tempIndexAwal = 0;
ifs_Awal.open("DefaultDataAwal");
/*counting the line*/
while(std::getline(ifs_Awal,lineDataAwal)){++tempIndexAwal;}
/*use dynamic array to stored string*/
std::string *s = new std::string[tempIndexAwal];
for(int dx=0;dx<tempIndexAwal;dx++)
{
while(std::getline(ifs_Awal,lineDataAwal))
s[dx] = lineDataAwal[dx++];
}
for(int dex =0;dex<tempIndexAwal;++dex)
{
ItemDefult = ListView1->Items->Add();
ItemDefult->Caption = String(IntToStr(dex + 1));
ItemDefult->SubItems->Add(s[dex].c_str());
}
ifs_Awal.close();
delete []s;
s = NULL;
}
нет никаких ошибок во время компиляции, но результат ListView только с указанием номера с этим кодом ItemDefult->Caption = String(IntToStr(dex + 1));
может кто-нибудь показать мне, как самый лучший способ для меня.
Используйте 'std :: vector'. Это намного проще и безопаснее. – chris
Здравствуйте, @chris благодарит за вас совет. Я попытался использовать 'std :: vector', но я получил ошибку, я использую 'cpp builder 2010' этот код 'std :: vector (std :: string) myline; while (std :: getline (ifs_Awal, myline)) \t { myline.push_back (myline); } ' –
ошибка, где существует прямая 'while'? compiller говорит '' не удалось найти соответствие для std :: string <_Elem, _Traits, _Alloc> ... "' –