В файл znak.txt введены даные про трёх человек. Сортировать по дате рождения.
Сама программа
void sort()
{
ifstream qwerty("qwerty.txt",ios::in);
for(i = 0; i < 3; i++)
qwerty>>pr[i].surname>>pr[i].zodiac>>pr[i].birthday;
for (i=0;i<3;i++)
{
for (j=i+1;j<3;j++)
{
if (strcmp(pr[i].birthday, pr[j].birthday)>0)
{
s=pr[i];
pr[i]=pr[j];
pr[j]=s;
}
}
}
for (i=0; i<3; i++)
{
cout<<"Familiya: "<<pr[i].surname<<endl;
cout<<"Znak zodiaca: "<<pr[i].zodiac<<endl;
cout<<"Den’ rozhdeniya: "<<pr[i].birthday<<endl;
}
qwerty.close();
getch();
}
ifstream zn_2k("znak.txt",ios::in);
for(i = 0; i < 3; i++) // Цикл забыл? Ты же читаешь только одно значение из файла...
zn_2k>>pr[i].surname>>pr[i].zodiac>>pr[i].birthday;
Да про цикл забыл..
Но что то по дате рождения не сортируется...
Пузырек?
Немного некорректно... Вот так надо бы:
for (i=0;i<3;i++) {
for (j=i+1;j<3;j++) { // <--- Обрати внимание ОТ чего начинаем цикл...
if ...
}
}
for (i=0;i<3;i++) {
for (j=2; j > i; j--) {
if ...
}
}
Спасибо!
Как правильно вывести введеную в файл информацию ?
Так выводится только даные первого человек три раза... Как сделать что бы все даные выводились ?
У тебя вообще ничего не должно выводиться ... Для вывода в файл надо пользоваться не ifstream, а ofstream...
...
Ты нормально вопрос задать можешь? Что можно из ЭТОГО понять???
...
разобрался.
ifstream test("test.txt");
for (i=0; i<3; i++)
{
test>>parametr1>>parametr2>>parametr3;
cout<<" 1: "<<parametr1<<endl;
cout<<" 2: "<<parametr2<<endl;
cout<<" 3: "<<parametr3<<endl;
}
test.close();