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

Странности при вводе из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Печать динамеческого массива через функцию. http://www.cyberforum.ru/cpp-beginners/thread542764.html
Вобшем проблема такая: как передать функции массив, размер которого не известен? #include <iostream> #include <stdlib.h> using namespace std; void print(int n, char mass2){ //Как я должен принять mass и ... for(int i=0;i<n;i++){
C++ Не могу разобраться с указателями Здравствуйте, никак не могу разобраться с этими указателями, вот есть одна функция: //Вводимо матрицю int **Matrix(int n) {int **matr = new int *; for (int i = 0; i < n; ++i) matr = new int ; for(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) {cout << "\n Vvedit` element ryadka " <<i+1 <<" stovbcya " <<j+1 <<" : "; cin >> matr;}} http://www.cyberforum.ru/cpp-beginners/thread542738.html
C++ Quick sort, не понятно некоторые моменты.
здравствуйте нужно реализовать quicksort Есть код с учебника по которому мы учимся, и вот не понятно некоторые моменты кода template <typename T> void quick_sort(vector<T>& v, int low, int high) { // Do not solve recursively when faced with // only 1 or 2 elements
сортировка вставками C++
Здравствуйте! Есть массив на 1000 элементов который генерируется рандомно. Есть переменная mr, нахожу ее по функции GetMinrun(int n), для числа 1000 она равна 63. Затем я хочу что бы каждые 63 элемента моего 1000 массива сортировался сортировкой вставками. Я тут реализовал, но она у меня вылетает, не пойму в чем ошибка... #include <iostream> #include <time.h> using namespace std; int...
C++ Перегрузить операторы = и [] для hash http://www.cyberforum.ru/cpp-beginners/thread542714.html
есть оператор который возвращает значение по ключу, как правильно написать оператор = для возможности писать такое hash = "Moto moto!"; хеш реализован двусвязным списком.
C++ Калькулятор логических/арифметических операций(подробности внутри) 1ый курс одного электротехнического вуза! Суть программы, которую нужно написать: Написать нужно на чистом Си Написать программу калькулятор, вычисляющая значения арифметичекого или логического выражения. - допуская неограниченное количество вложенных скобок. - должны полностью соблюдаться приоритеты логич. Арифм. Операций. - необходимо, чтобы программа умела вычислять значение как... подробнее

Показать сообщение отдельно
_kod_
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 84
08.04.2012, 18:45     Странности при вводе из файла
Программа должна получать данные из файла.... Примечательно, что она их получает корректно только при определенном положении слов в файлике. Подскажите, что я делаю не так.
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
//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <stdlib>
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
struct patrons
 {
  char name[20];
  double sum;
 };
 
int main(int argc, char* argv[])
{
 ifstream inFile;
 inFile.open("patrons.txt");
 
  if(!inFile.good())
  {
   cout<<"File not open!"<<endl;
   exit(EXIT_FAILURE);
  }
  int i, c = 0;
  int k = 0, k2 = 0;
 //cout<<"Enter the number of patrons: ";
 inFile >> i;
 
 cout<<"i = "<<i<<endl;
 patrons *ps = new patrons[i];
 //cin.get();
 while (inFile.good())
  {
 
   //cout<<"Enter the name of "<<j+1<<" patron: "<<endl;
   inFile.getline (ps[c].name,20);
 
   //cout<<ps[c].name<<endl;
   //cout<<"Enter the sum of patrons: ";
   inFile >> ps[c].sum;
   //cout<<ps[c].sum<<endl;
   c++;
   //cin.get();
  }
 
  if (inFile.eof())
   cout<<"End of file."<<endl;
 
   else
    if(inFile.fail() )
     cout<<"Uknown data."<<endl;
 
 
 
  cout<<"***Grand Patrons***"<<endl;
  for (int j = 0;j<i;j++)
  {
    if (ps[j].sum >= 10000)
     {
      cout<<ps[j].name<<"\t"<<ps[j].sum<<endl;
      k++;
     }
  }
 
 if (k == 0)
    cout<<"(none)"<<endl;
 
  cout<<"***Patrons***"<<endl;
 for (int j =0;j<i;j++)
  {
   if(ps[j].sum < 10000)
    {
     cout << ps[j].name <<"\t"<<ps[j].sum<<endl;
     k2++;
    }
  }
 
 if (k2 == 0)
  cout<<"(none)"<<endl;
 
 inFile.close();
 system("pause");
 
        return 0;
}
//---------------------------------------------------------------------------
Сори за такой код) Может быть кому-то покажется карявым... А вот и файлик, который надо считать в прогу:
4 Yaha Druganov
12000.0 Ivan Pupkin
11500.0 Yan Dias
32000.0 Alex C
3500.0

Вот так он его читает без проблем...
А вот так вообще не хочет:
4
Yaha Druganov
12000.0
Ivan Pupkin
11500.0
Yan Dias
32000.0
Alex C
3500.0

Прога пишет, что данные не совпадают Что делать-то?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru