Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считывание с файла 
:(
    Опции темы
oshilan
Дата 26.4.2010, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 21.3.2010

Репутация: нет
Всего: 0



Программа: Использование перегрузки функций (которая не является проблемой, и на мой взгляд проблема не в ней (перегрузке функций)). Перегрузка состоит в разном количестве параметров, передаваемых в функцию. В меню: 1. ФИ, страна; 2. ФИ, страна, год рождения; 3. ФИ, страна, год рождения, зарплата.
Проблема: 1. Неверное отображение года (+ они ещё одинаковые выводятся); 2. При последующем запуске функции выводятся данные только последнего человека в файле.
input.txt:
Код
Oshilanych
Oshilan
Ukraine
1992
1092.55

Zimmer
Hans
Germany
1957
25024.38

Schneider
Christoph
Germany
1966
53564.98

Текст программы:
Код
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<iomanip.h>
FILE *f;

void peregruz(char sname[10], char name[10], char country[10])
{ cout<<setw(10)<<sname<<setw(10)<<name<<setw(8)<<country<<'\n';
}

void peregruz(char sname[10], char name[10], char country[10], unsigned short int year)
{ cout<<setw(10)<<sname<<setw(10)<<name<<setw(8)<<country<<setw(5)<<year<<'\n';
}

void peregruz(char sname[10], char name[10], char country[10], unsigned short int year, float salary)
{ cout<<setw(10)<<sname<<setw(10)<<name<<setw(8)<<country<<setw(5)<<year<<setw(6)<<setprecision(2)<<salary<<'\n';
}

unsigned short int menu()
{ unsigned short int menuChoise;
  clrscr();
  cout<<"Output:\n";
  cout<<"1. Firstname, name, country\n";
  cout<<"2. Firstname, name, country, year\n";
  cout<<"3. Firstname, name, country, year, salary\n";
  cout<<"4. Exit\n\n";
  cout<<"Enter number of a choise: ";
  cin>>menuChoise;
  return menuChoise;
}

void main()
{ unsigned short int choise, _year, i;
  char _sname[10], _name [10], _country[10];
  float _salary;
  f=fopen("input.txt","r");
  do
  { choise=menu();
    switch(choise)
    { case 1: clrscr();
          for(i=0; i<3; i++)
          { fscanf(f, "%s\n", _sname);
        fscanf(f, "%s\n", _name);
        fscanf(f, "%s\n", _country);
        fscanf(f, "%u\n", NULL);
        fscanf(f, "%f\n", NULL);
        peregruz(_sname, _name, _country);
          }
          getch();
          break;
      case 2: clrscr();
          for(i=0; i<3; i++)
          { fscanf(f, "%s\n", _sname);
        fscanf(f, "%s\n", _name);
        fscanf(f, "%s\n", _country);
        fscanf(f, "%u\n", _year);
        fscanf(f, "%f\n", NULL);
        peregruz(_sname, _name, _country, _year);
          }
          getch();
          break;
      case 3: clrscr();
          for(i=0; i<3; i++)
          { fscanf(f, "%s\n", _sname);
        fscanf(f, "%s\n", _name);
        fscanf(f, "%s\n", _country);
        fscanf(f, "%u\n", _year);
        fscanf(f, "%f\n", _salary);
        peregruz(_sname, _name, _country, _year, _salary);
          }
          getch();
          break;
    }
  }
  while(choise!=4);
}

PM MAIL   Вверх
xvr
Дата 27.4.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Во первых - так fscanf(f, "%f\n", NULL); делать нельзя (в NULL не надо читать)
Во вторых - у вас в файле есть пустые строки, о которые fscanf и спотыкаются

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.