Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/45: Рейтинг темы: голосов - 45, средняя оценка - 4.91
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200

потоки с++

10.12.2012, 01:26. Показов 8653. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый вечер !нужно проверить мою программу с потоками. переделала, но что-то не так( закомменченная программа, моя на основе которой написала с потоками)

функция в одну транзакцию считывает 3 значения, проверяет их, если неправильные выдает соотв. эррор и переходит на следующую транзакцию. если eof прекращает читать транзакцию ( еще мне надо включить пункт, если введено с клавиатуры CTRL+D (gedit) тоже прекратить чтение транзакции (как это сделать?)

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include<iomanip>
#include <sstream>
#include <string>
#include <fstream>              
 
 
using namespace std;
/*int main()
{
    float number_of_shares=0;
    float total=0;
    float price_per_share,total_of_shares=0,total_of_spendings=0;
    int count=1; */
    void process_all_transactions(istream& in, ostream& err,double& total_of_spendings,int& total_of_shares);
    
   int main ()
    {
    double tot_spendings;
    int tot_shares;
      
    cout<<"Enter data for transaction "<<count<<endl;
    cout<<"Number of shares:"<<endl;
    cout<<"Price per share:"<<endl;
    cout<<"Optional transaction comment"<<endl;
 
    process_all_transactions(cin,cerr,tot_spendings,tot_shares);
    system("pause");
    return 0;
    }
    
    void process_all_transactions (istream& in , ostream& err , double& total_of_spendings , int& total_of_shares)
   {
   string line_transaction;
   while(!cin.eof()) //poka ne konec faila
    {
      istringstream iss; // v potok
      int number_of_shares;
      float price_per_share;
 
      if (getline(cin,line_transaction))
      {
      cout<< "No valid data"<< endl; 
      }
      else
      {
      iss.str(line_transaction); //iss chitaet iz peremennoj
           
           if (iss >> number_of_shares >> price_per_share)
           {
           if(price_per_share <0 || (-number_of_shares>total_of_shares))
           {
            cout<< "No valid data"<< endl;
           }
        else
          {
            tot_shares += number_of_shares;
            tot_spendings += number_of_shares*price_per_share;
          }
          
        }
          else
        {
          cout<< "No valid data"<< endl;
        }
      
        }
      
 
    }
    
    
    /*
    cout<<"This program calculates your profit/loss for all your investments in one share."<<endl;
    cout<<"Use a positive number for purchase, and a negative for sell."<<endl;
    cout<<"Enter zero (0) shares to exit the program."<<endl;
               
                 for (;;)
                 
                 {    
                      cout<<"Enter data for transaction "<<count<<endl;
                      cout<<"Number of shares:"<<endl;
                      cin>>number_of_shares;
                      
                      if (number_of_shares<0)
                      {
                            while(-number_of_shares>total_of_shares)
                            {
                            cout<<"You do not have that many shares, try again.:"<<endl;
                            cin>>number_of_shares;
                            }   
                      }                   
                     
                                 if (number_of_shares==0)
                                 {
                                 cout<<"Bye.Have a nice day."<<endl;
                                 break;
                                 }
                                            
    
    cout<<"Price per share:"<<endl;
    cin>>price_per_share;
                   if (price_per_share<0)
                   {
                   cout<<"price can;t be negative , try again:";
                   cin>>price_per_share;
                   }
   
                       if (number_of_shares<0)
                       {
                       cout<<"You gained  $"<<-number_of_shares*price_per_share<<"on this transaction.";
                       }
    
                       else 
                       {
                       cout<<"You spent $"<<number_of_shares*price_per_share<<"on this transaction."<<endl;}
                       total=number_of_shares*price_per_share;
                       total_of_shares+=number_of_shares;
                       total_of_spendings+=total;
                       
                            if (total_of_spendings<0)
                            {
                            cout<<"Your total profit amount to $"<<-total_of_spendings;
                            }
                            else 
                            {
                            cout<<"Your total spendings amount to $"<<total_of_spendings;
                            }
                            cout << " and you own "<<total_of_shares<<" shares. "<<endl;
                            cout<<endl;
    
                   }
   
 
    system("pause");
    return 0;
}*/
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.12.2012, 01:26
Ответы с готовыми решениями:

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

потоки
Здравствуйте. Есть форма, на которой есть два объекта Button. При нажатии на каждый выполняется умножение 2 функции и в 2 объекта Label...

потоки
Можно ли както вызывать одну функцию , передавая разные параметры , в разных потоках(_beginthread) одновременно? (Например передавать...

12
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
10.12.2012, 01:34
"что-то не так" - это плохое описание неверного поведения. нужны подробности.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2012, 01:38
Цитата Сообщение от letnjaja Посмотреть сообщение
while(!cin.eof()) //poka ne konec faila
- Меня сразу это убило...
Ладно ещё eof хотя оно ни к селу ни к городу, так ещё in зачем в функцию передаётся???
Вот так

Цитата Сообщение от letnjaja Посмотреть сообщение
while(!in.eof()) //poka ne konec faila
* * {
* * * istringstream iss; // v potok
* * * int number_of_shares;
* * * float price_per_share;
if (getline(in,line_transaction))
и дальше в таком духе
Дальше error C2065: 'count' : undeclared identifier
Цитата Сообщение от letnjaja Посмотреть сообщение
cout<<"Enter data for transaction "<<count<<endl;
Вы где то count объявляли?
Тоже самое
Цитата Сообщение от letnjaja Посмотреть сообщение
else
* * * * * {
* * * * * * tot_shares += number_of_shares;
* * * * * * tot_spendings += number_of_shares*price_per_share;
* * * * * }
Ваш код полностью неработоспособен, потому как неверно инкапсулирован.
Вначале я так понял всё делалось в мэйне а потом была попытка вынести действия в отдельную функцию, но безуспешная. Просто посомтрите хотябы на сообщения вашего линковщика
d:\microsoft visual studio\cyberforum\err\err.cpp(22) : error C2065: 'count' : undeclared identifier
d:\microsoft visual studio\cyberforum\err\err.cpp(57) : error C2065: 'tot_shares' : undeclared identifier
d:\microsoft visual studio\cyberforum\err\err.cpp(58) : error C2065: 'tot_spendings' : undeclared identifier
d:\microsoft visual studio\cyberforum\err\err.cpp(139) : fatal error C1004: unexpected end of file found
Добавлено через 2 минуты
fatal error C1004: unexpected end of file found - означает что ещё и баланс скобок нарушен, ввиду чего компилятор не найдя последней скобки или найдя лишнюю просто не знает где же сделать останов.
0
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
10.12.2012, 01:39
на счет CTRL+D :
Code
1
2
3
4
5
 switch((ch_key/*тут естественно ваша переменная*/ = _getch()))
 {
    case 04://код 04 уточнить
            cout<<"программа завершает свою работу!"<<endl;break;       
 }
а в остальном если честно ни хочется вникать в чужой код) извините устал немножко)
0
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
10.12.2012, 15:51  [ТС]
p.s. я не могу никакие комментарии прочитать нормально, из- за цитат, которые все закрывают ((

Добавлено через 13 часов 38 минут
C++
1
if (getline(in,line_transaction))
можете объяснить значение этой строчки?

Добавлено через 36 секунд
если считана строка или как?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2012, 16:14
Цитата Сообщение от letnjaja Посмотреть сообщение
1
if (getline(in,line_transaction))
можете объяснить значение этой строчки?
Добавлено через 36 секунд
если считана строка или как?
- да если из потока istream in считана строка то производить действия

Добавлено через 8 минут
letnjaja, я правлю ваш код, в коде ещё и тут ошибка
C++
1
2
3
4
 if (getline(cin,line_transaction))
      {
      cout<< "No valid data"<< endl; 
      }
"No valid data" надо писать когда
C++
1
 !getline(cin,line_transaction)
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2012, 16:17
Вот поправленный код - он компилируется и что то можно ввести, что код делает для чего я не вникал, чисто механически поубирал ошибки и исправил условие на некорректность данных
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
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <fstream>              
using namespace std;
 
void process_all_transactions
        (
            istream& in, 
            ostream& err,
            double& total_of_spendings,
            int& total_of_shares
        );
    
int main ()
{
    int tot_shares;
    double tot_spendings;
    
      
    cout<<"Enter data for transaction :"<<endl; 
    process_all_transactions(cin,cerr,tot_spendings,tot_shares);
    cout<<"Number of shares:"<<tot_shares<<endl;
    cout<<"Price per share:"<<tot_spendings<<endl;
    cout<<"Optional transaction comment"<<endl;
    system("pause");
    return 0;
}
 
void process_all_transactions (istream& in , ostream& err , double& total_of_spendings , int& total_of_shares)
{
    float number_of_shares=0;
    float total=0;
    string line_transaction;
    while(!in.eof()) //poka ne konec faila
    {
        istringstream iss; // v potok
        int number_of_shares;
        float price_per_share;
 
        if(!getline(in,line_transaction))
            cout<< "No valid data"<< endl; 
        else
        {
            iss.str(line_transaction); //iss chitaet iz peremennoj
           
            if (iss >> number_of_shares >> price_per_share)
            {
                if(price_per_share <0 || (-number_of_shares>total_of_shares))
                {
                     cout<< "No valid data"<< endl;
                }
                else
                {
                    total_of_shares += number_of_shares;
                    total_of_spendings += number_of_shares*price_per_share;
                }
          
            }
            else
                cout<< "No valid data"<< endl;
        }
    }
}
Миниатюры
потоки с++  
1
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
10.12.2012, 16:25  [ТС]
я переделала, нужна критика, потому что в потоках я вообще не разбираюсь пока что, я хочу считать
данные из файла, проверить и в конце после всех транзакций вывести конечный результат

п.с. дайте какую-нить подсказку как все сообщения об ошибках записать в другой файл
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
[CPP]#include <iostream>
#include<iomanip>
#include <sstream>
#include <string>
#include <fstream>              
using namespace std;
void process_all_transactions(istream& in, ostream& err,double& total_of_spendings,int& total_of_shares);
    
int main ()
{
    
    double tot_spendings;
    int tot_shares;
      
    cout<<"Enter data for transaction "<<endl;
    cout<<"Number of shares:"<<endl;
    cout<<"Price per share:"<<endl;
    cout<<"Optional transaction comment"<<endl;
 
    process_all_transactions(cin,cerr,tot_spendings,tot_shares);
    system("pause");
    return 0;
    }
    
    void process_all_transactions (istream& in , ostream& err , double& total_of_spendings , int& total_of_shares)
   {
   double tot_spendings;
   int tot_shares;
   ifstream infile;//fail dlja chtenija
   ofstream outfile;//fail dlja zapisi
   string my_file;
 
   
   
   string line_transaction; 
   
   
   cout<<"enter file name:";
   cin>>my_file;
   
   infile.open(my_file.c_str()); //otkritj fail dlja chtenija
   if (! infile) //esli ne mowet otkritj
   {
         cerr<<"could not open file"<<endl;  
         
   }
   while (infile>>line_transaction)// s4itivaet dannie
   {
   while(!in.eof()) // poka ne konec faila ili poka ne nawato CTRL+D ??
   {
   istringstream iss; // v potok
   int number_of_shares;
   float price_per_share;
         if (getline(in,line_transaction))// s4itivaet stroku
         {
         iss.str(line_transaction); //iss chitaet iz peremennoj
         if (iss >> number_of_shares >> price_per_share) 
         {  if (price_per_share <0)
            {
            cerr<<"price can't be negative"<<endl;
            }
            
            if(-number_of_shares>total_of_shares)
            {
            cerr<< "You do not have that many shares, try again.:"<< endl;
            }
            
            else
            {
            tot_shares += number_of_shares;
            tot_spendings += number_of_shares*price_per_share;
            }
          
            }
          
      
        }
      
}
            cout<<"Your total spendings amount to $"<<tot_spendings;
            cout << " and you own "<<tot_shares<<" shares. "<<endl;
            cout<<endl;   
    
}
  
  
  infile.close();
}
[/CPP]

Добавлено через 4 минуты
что делает код: в каждой транзакции вводится кол-во акций, цена, комментарий(не обязателен)
(ограничение цена не может быть отрицательной и нельзя продать больше акций, чем есть)
и после каждой считается, сколько акций и сколько затрат
и так после каждой транзакции.
в этом случае. мне нужно вывести только конечный результат после всех транзакций
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2012, 16:26
letnjaja, вот код под ручной ввод (надо было ещё ряд изменений внести в код на пост выше). Останов ввода - черз воод не числа - скажем введите слово exit
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
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <fstream>              
using namespace std;
 
void process_all_transactions
        (
            istream& in, 
            ostream& err,
            double& total_of_spendings,
            int& total_of_shares
        );
    
int main ()
{
    int tot_shares       = 0;
    double tot_spendings = 0;
    
      
    cout<<"Enter data for transaction :"<<endl; 
    process_all_transactions(cin,cerr,tot_spendings,tot_shares);
    cout<<"Number of shares:"<<tot_shares<<endl;
    cout<<"Price per share:"<<tot_spendings<<endl;
    cout<<"Optional transaction comment"<<endl;
    system("pause");
    return 0;
}
 
void process_all_transactions (istream& in , ostream& err , double& total_of_spendings , int& total_of_shares)
{
    float number_of_shares=0;
    float total=0;
    string line_transaction;
    while(!in.eof()) //poka ne konec faila
    {
        istringstream iss; // v potok
        int number_of_shares;
        float price_per_share;
 
        if(!getline(in,line_transaction))
            cout<< "No valid data"<< endl; 
        else
        {
            iss.str(line_transaction); //iss chitaet iz peremennoj
           
            if (iss >> number_of_shares >> price_per_share)
            {
                if(price_per_share <0 || (-number_of_shares>total_of_shares))
                {
                     cout<< "No valid data"<< endl;
                }
                else
                {
                    total_of_shares += number_of_shares;
                    total_of_spendings += number_of_shares*price_per_share;
                }
          
            }
            else
            {
                cout<< "No valid data"<< endl;
                break;
            }
        }
    }
}
А если ошибки в файл записать хотите то хотябы
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
process_all_transactions(cin,cerr,tot_spendings,tot_shares);
передайте на место cerr указатель на файловый поток записи, у вас же даже поток записи не создан
PS:Лучше всего дайте изначальный код под чтение из файла, ваши подправления сделали из кода "штуку", которую сложно понять. Просто забросьте код, который читал из файла и как я понял в мэйне, а уж умные дядьки либо я подправим его под ручной ввод и запись ошибок в файл...
Миниатюры
потоки с++  
0
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
10.12.2012, 16:39  [ТС]
сейчас попробую исправить что-нибудь

Добавлено через 2 минуты
я перехимичила, у меня все время not valid data

Добавлено через 2 минуты
// чтение из файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
ifstream infile;
int line_transaction;
 
infile.open(“my_data.txt);
if ( ! infile)
{
cerr << “Could not open file” << endl;
return 1;
}
 
while (infile >> line_transaction)
{
cout << line_transaction << endl;
}
 
infile.close();
 
return 0;
}
Добавлено через 4 минуты
int main()
{
и еще часть кода для файла, куда вписивыть ошибки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ofstream outfile;
int line_transaction;
outfile.open(“error.txt);
if ( ! outfile)
{
cerr << “Could not open file” << endl;
return 1;
}
while (cin >> line_transaction)
{
outfile << line_transaction << endl;
}
outfile.close();
return 0;
}
0
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
12.12.2012, 08:03  [ТС]
я тут накидала кода, подкорректируйте, пжлста
надо, чтобы информацию считывал с файла,ошибки вписывал в файл(другой) , если нет создавал его, и если в пустую строку в компиляторе вволится ^D выходил. спс)
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
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <fstream>              
using namespace std;
 
void process_all_transactions
        (
            istream& in, 
            ostream& err,
            double& total_of_spendings,
            int& total_of_shares
        );
    
int main ()
{
    int tot_shares       = 0;
    double tot_spendings = 0;
    
      
    cout<<"This program calculates your profit/loss for all your investments in one share.:"<<endl; 
    process_all_transactions(cin,cerr,tot_spendings,tot_shares);
    cout<<"Enter the file with transactions:"<<endl;
    system("pause");
    return 0;
}
 
void process_all_transactions (istream& in , ostream& err , double& total_of_spendings , int& total_of_shares)
{
    float number_of_shares=0;
    float total=0;
    string line_transaction;
 
    while(!in.eof()) //poka ne konec faila ili poka ne nawato ^D? (kak eto sdelatj s ch=='^D' ne viwlo)? 
    {
        istringstream iss; // v potok
        ifstream infile; //fail dlja 4tenija
        ofstream outfile;// fail, kuda vpisivatj owibki
        int number_of_shares;
        float price_per_share;
        infile.open(“my_data.txt); //otkrivaju fail
    if ( ! infile) //esli owibka
    {
    cerr << “Could not open file” << endl;
    return 1;
    }
        while (infile >> line_transaction)//poka s4itivaet liniju?
    {
    
 
        if(!getline(in,line_transaction))
           cout<< "No valid data"<< endl; 
           outfile.open(“error.txt);
           if ( ! outfile)
           {
           cerr << “Could not open file” << endl;
           return 1;
           }//esli net takogo faila sozdatj fail
           while (cin >> line_transaction)
           {
           outfile << line_transaction << endl;
           }
           outfile.close();
           return 0;
           }
        else
        {
            iss.str(line_transaction); //iss chitaet iz peremennoj
           
            if (iss >> number_of_shares >> price_per_share)
            {
                if(price_per_share <0 || (-number_of_shares>total_of_shares))
                {
                     cout<< "you don't have enough shares"<< endl;
                }
                else
                {
                    total_of_shares += number_of_shares;
                    total_of_spendings += number_of_shares*price_per_share;
                }
          
            }
            else
            {
                cout<< "No valid data"<< endl;
                //break;
           
            }
          }
        } 
      infile.close();
    }
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.12.2012, 18:01
Цитата Сообщение от letnjaja Посмотреть сообщение
надо, чтобы информацию считывал с файла,ошибки вписывал в файл(другой) , если нет создавал его,
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
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <fstream>              
using namespace std;
 
void process_all_transactions
        (
            ifstream &in ,  
            ofstream &err,
            double& total_of_spendings,
            int& total_of_shares
        );
    
int main ()
{
    int tot_shares       = 0;
    double tot_spendings = 0;
    
    ifstream ifs("data.txt");//Файл с данными
    ofstream ofs("eror.txt");//Файл с ошибками
    cout<<"Enter data for transaction :"<<endl; 
    process_all_transactions(ifs,ofs,tot_spendings,tot_shares);
    cout<<"Number of shares:"<<tot_shares<<endl;
    cout<<"Price per share:"<<tot_spendings<<endl;
    cout<<"Optional transaction comment"<<endl;
    ifs.close();
    ofs.close();
    system("pause");
    return 0;
}
 
void process_all_transactions (ifstream &in , ofstream &err , double& total_of_spendings , int& total_of_shares)
{
    float number_of_shares=0;
    float total=0;
    string line_transaction;
    while(!in.eof()) //poka ne konec faila
    {
        istringstream iss; // v potok
        int number_of_shares;
        float price_per_share;
 
        if(!getline(in,line_transaction))
            err<<"!getline(in,line_transaction) - No valid data"<< endl; 
        else
        {
            iss.str(line_transaction); //iss chitaet iz peremennoj
           
            if (iss >> number_of_shares >> price_per_share)
            {
                if(price_per_share <0 || (-number_of_shares>total_of_shares))
                    err<<"price_per_share <0 || (-number_of_shares>total_of_shares) - "
                       << "No valid data"<< endl;
                else
                {
                    total_of_shares += number_of_shares;
                    total_of_spendings += number_of_shares*price_per_share;
                }
          
            }
            else
            {
                err<<"!iss >> number_of_shares >> price_per_share - "
                       << "No valid data"<< endl;
                break;
            }
        }
    }
}
Данные должны находиться в файле data.txt который должне быть в каталоге проекта
Содержимое файлов при тесте
data.txt
152.5 1245
12 44
15 54858
25.216 -451
d2gh
Вывод в eror.txt
!iss >> number_of_shares >> price_per_share - No valid data
Миниатюры
потоки с++  
Вложения
Тип файла: txt data.txt (46 байт, 4 просмотров)
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
14.12.2012, 20:09
Цитата Сообщение от letnjaja Посмотреть сообщение
потоки с++
Не понял. Вы читаете файл в несколько потоков?(что в принципе логично, если пишете многопоточное приложение)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2012, 20:09
Помогаю со студенческими работами здесь

Потоки
Помогите,пожалуйста!Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед...

Потоки
Пару вопросов про потоки... 1. Открывается поток, в нем запускается еще один... потоки отсоединяются, как закрыть дочерний поток когда...

Потоки
В процессе выполнения задачи возникла проблема чтения объектов из потока и сохранения их в массив: cout &lt;&lt; &quot;Rasstojanie =...

Потоки
Программа порождает два потока, один генерирует матрицу, которая через именованный канал передаётся другому потоку, выводящему её на экран....

Потоки
Здравствуйте. Изначально код моей программы выглядел примерно так void Thread( void* pParams ) { //Код } void Thread1(...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru