Форум программистов, компьютерный форум CyberForum.ru

Структуры.не считывается из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работает с Int, а с char отказывается http://www.cyberforum.ru/cpp-beginners/thread1064673.html
#include <stdio.h> main() { char i; i=func1('t','p'); printf("%c", i); } func1(char p,char f) { char d;
C++ Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы Среда Visual C++2010 По логике должно работать, но почему то кириллица игнорируется, пытался исправить подключением библиотеки locale не помогло. При использовании одной лишь латиницы алгоритм работает... В чём может быть проблема? #include <conio.h> #include <stdio.h> #include <string> void main() { printf("input\n"); http://www.cyberforum.ru/cpp-beginners/thread1064611.html
Вывод в консоль чисел от 1 до 1000 не используя циклов и условных операторов C++
Условие было такое Сумеете ли вы вывести числа от 1 до 1000 средствами языка C/C++, не используя циклов и условных операторов? (Не стоит предлагать 1000 раз написать printf() или cout.) Я как то на странице с готовыми решениями наткнулся на код #include <stdio.h> #include <stdlib.h> void main(int j) { printf("%d\n", j);
Двумерный массив покажите как составить только с такими операторами C++
Дан двумерный массив а(5,3) Составить программу используя только операторы:for,while,if. Посчитать и вывести на экран Si для элементов каждой строки по формуле: где i-номер строки,j-номер столбца. Si=5+\sum_{j=1}^{3}\frac{1-{a}_{ij}+{{a}_{ij}}^{2}}{6} {a}_{ij} это элемент массива с адресом i-номер строки,j-номер столбца.
C++ Вычислите след матрицы http://www.cyberforum.ru/cpp-beginners/thread1064593.html
Дана квадратная матрица размером MхM. Вычислите след матрицы (т. е. сумму диагональных элементов). Найдите наименьший и наибольший элементы и подсчитайте их полусумму. Из элементов побочной диагонали сформируйте одномерный массив и отсортируйте его по убыванию методом простых вставок (Insert Sort). Выведите на экран исходную матрицу, рассчитанные значения (след матрицы, наименьший и наибольший...
C++ Отличия debug x32 от x64 Помогите, не понимаю, в чем разница! Огромное спасибо! С Рождеством!!!1:thank_you: подробнее

Показать сообщение отдельно
Юлька1994
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 7
07.01.2014, 03:56     Структуры.не считывается из файла
Всем привет!
Ребят,тут такое дело,вобщем задали нам лабу написать.Нужно было написать программу,которая считывала бы из файла фамилию сотрудника и выводила бы его год рождения и оклад,программа то работает,но из файла не считывается,помогите разобраться,а то послезавтра сдавать уже
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "stdafx.h"
#include <fstream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
//#include <windows.h>
#include <iostream>
#include <clocale>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
 
     const int l_name = 15, l_year = 5, l_pay = 4, 
 
      l_buf = l_name + l_year + l_pay;                  //  1
 
  
 
  struct Man {                                          //  2
 
    int birth_year; 
 
    char name[l_name + 1];
 
    float pay;
 
  };
 
  const int l_dbase = 100;
 
  Man dbase[l_dbase];                                   //  3
 
  
 
  char buf [l_buf + 1];                                 //  4
 
  char name[l_name + 1];                                //  5
 
  
 
  ifstream fin("dbase.txt", ios::in | ios::_Nocreate);  //  6
 
if (!fin) { cout << " Ошибка открытия файла "; return 1; }
 
  
 
  int i = 0;
 
  while (fin.getline(buf, l_buf)) {                     //  7
 
    if (i >= l_dbase) { cout << " Слишком длинный файл "; return 1; }
 
    strncpy(dbase[i].name, buf, l_name);
 
    dbase[i].name[l_name] = '\0';
 
    dbase[i].birth_year = atoi(&buf[l_name]);
 
    dbase[i].pay = atof(&buf[l_name + l_year]);
 
    i++;
 
  }
 
  int n_record = i, n_man = 0;                          //  8
 
  float mean_pay = 0;
 
while (true) { 
// 9
cout << " Введите фамилию или слово end: "; cin >> name;
// OemToChar(name, name); // 10
if (strcmp(name, "end") == 0 )break; // 11
bool not_found = true; // 12
for (i = 0; i < n_record; i++) { // 13
if (strstr(dbase[i].name, name)) // 14
if (dbase[i].name[strlen(name)] == ' ') { // 15
strcpy(name, dbase[i].name);
// CharToOem(name, name); // 16
cout << name << dbase[i].birth_year << ' ' << dbase[i].pay
<< endl; 
n_man++; mean_pay += dbase[i].pay;
not_found = false;
}
}
if (not_found) cout << " Такого сотрудника нет" << endl;
}
if (n_man > 0) cout << " Средний оклад: " << mean_pay / n_man <<
endl; // 17
return 0;
}
Файл dbase.txt должен лежать в папке проекта
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru