Во-первых, я новичок в C++, поэтому не отмечаю, что я ничего не знал или не был прав. У меня есть файл, который я пытаюсь прочитать в моей программе на C++. Я занимаюсь практикой для проекта. Я должен создавать и создавать объекты, и каждый экземпляр представляет собой одну строку файла с семью переменными. Файл содержит базу данных. Формат текстового файла:Входные данные разных типов из файла и НЕ ИСПОЛЬЗОВАНИЕ ВЕКТОРОВ
// String String Character Int Int Char Int
// String String Character Int Int Char Int
// etc.
Существует ровно 350 членов данных. Больше никогда не бывает. Поэтому я использую массивы. Я не могу использовать векторы для этого проекта, как указано не для.
Каков наилучший способ приблизиться к этому только при использовании массивов?
моя первая попытка была создать 3 массивы:
for (int l = 0; l < max_size; l++) {
myfile >> myintarray[l];
}
for (int k = 0; k < max_size; k++) {
myfile >> mychararray[k];
}
for (int i = 0; i < max_size; i++) {
myfile >> myarray[i];
// print artists and title;
}
// Then I have to put it the object. Store as such....
myloop = 0;
a = 2;
b = 5;
while (myloop < 50) {
myartwork[myloop].setRoom(mychararray[b]);
myartwork[myloop].myart.setMeduim(mychararray[a]);
a += 7;
b += 7;
myloop += 1;
}
// more code where I do the same thing with characters
// same things with strings.....
Когда я попробовал, что он распечатан содержимое. это было inccorect. и mumbo jumbo. Итак, я думаю, что это потому, что я пытаюсь сохранить весь массив чисел, который он не может принимать, и выводит ошибку? Я не уверен, что это правильно.
Итак, я попытался использовать только один массив, который был строкой, затем преобразовал каждую строку в тип char или int. и это было больно, и я получаю сообщение об ошибке. и я не уверен, как передать тип символа.
myloop = 0;
a = 3;
b = 4;
c = 6;
while (myloop < 50) {
//std::stoi (str_dec,&sz)
std::string::size_type sz;
// my object (instance). data......Try to convert this.
myartwork[myloop].mymysize.setLength(std::stoi(myarray[a], &sz));
myartwork[myloop].mymysize.setWidth(std::stoi(myarray[b], &sz));
myartwork[myloop].setPrice(std::stoi(myarray[c], &sz));
a += 7;
b += 7;
c += 7;
myloop += 1;
}
Есть ли лучший способ сделать это, то эти два метода? Я на правильном пути?
_ "Я не могу использовать векторы" _. Затем используйте 'std :: deque'. Или 'std :: list' –