IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Структуры и файлы, C++
сообщение
Сообщение #1


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


В файл 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();
}



Подскажите где ошибка в функций sort. Сортировка вот такая получается sad.gif :
...

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






ifstream zn_2k("znak.txt",ios::in);

for(i = 0; i < 3; i++) // Цикл забыл? Ты же читаешь только одно значение из файла...
zn_2k>>pr[i].surname>>pr[i].zodiac>>pr[i].birthday;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Да про цикл забыл..


Но что то по дате рождения не сортируется...

Сообщение отредактировано: Desktop 3 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Пузырек?

Немного некорректно... Вот так надо бы:
  for (i=0;i<3;i++) {
for (j=i+1;j<3;j++) { // <--- Обрати внимание ОТ чего начинаем цикл...

if ...

}
}


P.S. Хотя я бы вообще сделал:
  for (i=0;i<3;i++) {
for (j=2; j > i; j--) {

if ...

}
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Спасибо! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Как правильно вывести введеную в файл информацию ?
Так выводится только даные первого человек три раза... Как сделать что бы все даные выводились ?


Сообщение отредактировано: Desktop 3 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






У тебя вообще ничего не должно выводиться ... Для вывода в файл надо пользоваться не ifstream, а ofstream...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


...

Сообщение отредактировано: Desktop 3 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Ты нормально вопрос задать можешь? Что можно из ЭТОГО понять???
Цитата
Как правильно вывести введеную в файл информацию ?

Или ты в файл выводишь, или ты из файла читаешь, или вообще непонятно что у тебя происходит... Информация в файл введена? Тогда показывай, КАК... Что толку от этих кусочков кода, если ты не показываешь СТРУКТУРУ, в которой хранятся данные?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


...

Сообщение отредактировано: Desktop 3 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Desktop
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


разобрался.

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();



Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2020 19:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name