2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 не считывает строку с файла в программе
Сообщение01.11.2011, 09:09 


21/06/11
141
Короче простейшая прога: есть база данных рабочих, вводят с консоли фамилию рабочего и ты должен вывести о нём информацию.
код: [ скачать ] [ спрятать ]
Используется синтаксис C++
#include <iostream>
#include <string>
#include <cstdio>
#include "Workers.h"
#include <fstream>
using namespace std;
void workers::getinfo(string NAME,int birthday,int salary)
{
    Name=NAME;birth_year=birthday;pay=salary;
}
void workers::showinfo()
{
    cout<<"Name: "<<Name;
    cout<<"Was born in: "<<birth_year;
    cout<<"Gets: "<<pay<<" per month";
}
bool workers::compname(string name)
{
    if(name==Name)
        return true;
    else
        return false;
}
int main()
{
       ifstream in;
    in.open("workers.txt");
    workers arbeiter[10];
    string NAme,NAME;
    int i=0,salary,birthday;
    while(in)
    {
        in>>NAME;
        in>>salary;
        in>>birthday;
      arbeiter[i].getinfo(NAME,birthday,salary);
        ++i;
    }
    while(true)
    {
        cout<<"Введите фамилию или слово end: "<<endl;
        cin>>NAme;
        if(NAme=="end")
            break;
        else
            for(int j=0;j<=i;++j)
            {
                if(arbeiter[i].compname(NAme))
                    arbeiter[i].showinfo();
                break;
            }
    }
}
 

Workers.h(написан отдельно чисто для практики)
Используется синтаксис C++
#include <string>
#include <iostream>
using namespace std;
class workers
{
private:
    string Name;
    int birth_year;
    int pay;
public:
    void showinfo();
    void getinfo();
    bool compname(string name);
}

workers.txt:
Иванов 1957 4200
Петров 1947 3800
Сидоров 1938 3000
Ивановский 1963 6200

Среда: Netbeans 6.9, компилятор: GNU C++ 4.4

При дебаге обнаружил, что он не сможет считать строку. Т.е он не считывает почему-то Иванов И.П., но считывает 1957 и 4200. Как исправить?

 Профиль  
                  
 
 Re: не считывает строку с файла в программе
Сообщение01.11.2011, 12:08 


16/06/10
199
Проверил на MSVC 6.0.
Всё работает, естественно, после исправления мелких ошибок :
  • отсутствует запятая после декларации класса в заголовочном файле;
  • декларация метода getinfo не совпадает с его определением в основном файле;
  • путаница с переменными i и j в цикле поиска по "базе";
  • break после первого-же прохода цикла поиска.

 Профиль  
                  
 
 Re: не считывает строку с файла в программе
Сообщение01.11.2011, 13:43 


21/06/11
141
lim0n в сообщении #498106 писал(а):
Проверил на MSVC 6.0.
Всё работает, естественно, после исправления мелких ошибок :
  • отсутствует запятая после декларации класса в заголовочном файле;
  • декларация метода getinfo не совпадает с его определением в основном файле;
  • путаница с переменными i и j в цикле поиска по "базе";
  • break после первого-же прохода цикла поиска.

Код покажете?
Без workers.h ?

-- 01.11.2011, 17:41 --

Всё, отладил
Спасибо

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group