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

Что не так? - C++

Восстановить пароль Регистрация
 
wolf1396
5 / 5 / 0
Регистрация: 07.05.2013
Сообщений: 192
20.11.2013, 16:51     Что не так? #1
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
// laba1_cpp.cpp : Defines the entry point for the console application.
//
//не удается составить аргумент шаблон для "T"
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <string>
 
using namespace std;
 
static string input_file,output_file;
template <class T> void sortItems(vector <T> input, vector <T> & output);
void writeInFile(string output_file); 
template <class T> struct greater {
  bool operator() (const T& x, const T& y) const {return x>y;}
};
//чтение из файла
template <class T> void readFromFile(string input_file, T& input) 
{
    T tmp;
    ifstream file(input_file.c_str());
    file >> tmp;
    //input.push_back(tmp);
}
//сортировка
template <class T> void sortItems(vector <T> input, vector <T> & output)
{
    //сортировка по убыванию
    if (argv[2][1]=='n')//non-default - по убыванию
    {
      sort(const T& x,const T& y, greater);
    }
    //стандартная сортировка
    if (argv[2][1]=='d')      //default - по возрастанию
    {
        sort(const T& x,const T& y);
    }
}  
//запись в файл
template <class T> void writeInFile(string output_file, T& output) 
{
    ifstream file(output_file.c_str());
    vector <T> output:: iterator iter;
    for (iter=output.begin(); iter!=output.end(); iter++)
    {
        file << *iter;
    }
    
}
int _tmain(int argc, _TCHAR* argv[])
{
    if ( (argc <5) && (argc>5) )
    {
        cout << "Проверьте кол-во элементов и входные параметры" << endl;
    }
    if (argv[1][1]=='s' ^ argv[1][1]=='i' ^ argv[1][1]=='f')
    {
        if (argv[1][1]=='s')
        {
            vector <string> input;
            vector <string> output;
            readFromFile(input_file,input);
            sortItems(input, output);
            writeInFile(output_file,output);
        }
        if (argv[1][1]=='i')
        {
            vector <int> input;
            vector <int> output;
            readFromFile(input_file,input);
            sortItems(input, output);
            writeInFile(output_file,output);
        }
        if (argv[1][1]=='f')
        {
            vector <float> input;
            vector <float> output;
            readFromFile(input_file,input);
            sortItems(input, output);
            writeInFile(output_file,output);
        }
    }
    return 0;
}
54 ошибки:
Кликните здесь для просмотра всего текста
laba1_cpp.cpp
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(58) : warning C4554: '^' : check operator precedence for possible error; use parentheses to clarify precedence
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(58) : warning C4554: '^' : check operator precedence for possible error; use parentheses to clarify precedence
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(24) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>' (or there is no acceptable conversion)
with
[
_Ty=std::string
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1144): could be 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1146): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1148): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1150): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
while trying to match the argument list '(std::ifstream, std::vector<_Ty>)'
with
[
_Ty=std::string
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(64) : see reference to function template instantiation 'void readFromFile>(std::string,T &)' being compiled
with
[
_Ty=std::string,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(31) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(65) : see reference to function template instantiation 'void sortItems(std::vector<_Ty>,std::vector<_Ty> &)' being compiled
with
[
_Ty=std::string
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(36) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2653: 'output' : is not a class or namespace name
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(66) : see reference to function template instantiation 'void writeInFile>(std::string,T &)' being compiled
with
[
_Ty=std::string,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2146: syntax error : missing ';' before identifier 'iter'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(48) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(24) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>' (or there is no acceptable conversion)
with
[
_Ty=int
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1144): could be 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1146): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1148): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1150): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
while trying to match the argument list '(std::ifstream, std::vector<_Ty>)'
with
[
_Ty=int
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(72) : see reference to function template instantiation 'void readFromFile>(std::string,T &)' being compiled
with
[
_Ty=int,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(31) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(73) : see reference to function template instantiation 'void sortItems(std::vector<_Ty>,std::vector<_Ty> &)' being compiled
with
[
_Ty=int
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(36) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2653: 'output' : is not a class or namespace name
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(74) : see reference to function template instantiation 'void writeInFile>(std::string,T &)' being compiled
with
[
_Ty=int,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2146: syntax error : missing ';' before identifier 'iter'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(48) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(24) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>' (or there is no acceptable conversion)
with
[
_Ty=float
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1144): could be 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1146): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,signed char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1148): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(1150): or 'std::basic_istream<_Elem,_Traits> &std::operator >>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(155): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(161): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(168): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(175): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(194): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(228): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(247): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(273): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(291): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(309): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(329): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(348): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(367): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(386): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(404): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(422): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)'
with
[
_Elem=char,
_Traits=std::char_traits
]
c:\program files\microsoft visual studio 9.0\vc\include\istream(441): or 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)'
with
[
_Elem=char,
_Traits=std::char_traits
]
while trying to match the argument list '(std::ifstream, std::vector<_Ty>)'
with
[
_Ty=float
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(80) : see reference to function template instantiation 'void readFromFile>(std::string,T &)' being compiled
with
[
_Ty=float,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(31) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(81) : see reference to function template instantiation 'void sortItems(std::vector<_Ty>,std::vector<_Ty> &)' being compiled
with
[
_Ty=float
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(33) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(36) : error C2065: 'argv' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2143: syntax error : missing ')' before 'const'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : expects 3 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3275) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 0 provided
c:\program files\microsoft visual studio 9.0\vc\include\algorithm(3112) : see declaration of 'std::sort'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(38) : error C2059: syntax error : ')'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2653: 'output' : is not a class or namespace name
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(82) : see reference to function template instantiation 'void writeInFile>(std::string,T &)' being compiled
with
[
_Ty=float,
T=std::vector
]
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2146: syntax error : missing ';' before identifier 'iter'
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(45) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(46) : error C2065: 'iter' : undeclared identifier
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(48) : error C2065: 'iter' : undeclared identifier


почему они возникли, помогите переделать, а то я не понимаю

Исходный файл содержит данные одного из 3 типов: строки либо целые числа либо
вещественные числа. Тип содержимого задается ключом в первом параметре программы.
Максимальная длина строки в файле — 1024 символа. Строки могут содержать пробелы и
разделены символом перевода строки '\n'.
Режим сортировки (по возрастанию, по убыванию) задается ключом во втором
параметре программы. Исходный файл задается третьим параметром, файл для
сохранения результата — четвертым параметром программы:
filesort.exe -x -y input_file output_file
Где x может принимать значения: s (строки), i (целые числа), f (плавающая точка).
Где y может принимать значения: a (ascending — по возрастанию), d (descending — по
убыванию).
Общие указания:
- для работы с файлами – использовать потоки ifstream, ofstream;
- функция сортировки должна быть шаблонной функцией:
template <class T> void sort_items(vector<T> input, vector<T>& output);
- загрузка файла – шаблонная функция;
- запись в файл – шаблонная функция.
Проверочные вопросы:
- Что такое STL?;
- Что такое функция – шаблон?
- Как загрузить/сохранить информацию из/в файл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 16:51     Что не так?
Посмотрите здесь:

C++ Что не так?
что не так? C++
C++ что-то не так
что не так? C++
C++ Что-то не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
20.11.2013, 17:16     Что не так? #2
C++
1
2
3
4
5
6
7
template <class T> void readFromFile(string input_file, T& input) 
{
    T tmp;
    ifstream file(input_file.c_str());
    file >> tmp;
    //input.push_back(tmp);
}
Вы уверены в том что operator>> файлового потока умеет читать данные в вектор как вы написали
C++
1
file >> tmp;
.
Возможно стоит считать данные в буфер(строку и т.д.) а потом сделать
C++
1
input.push_back(tmp);
Другими словами Вы в функцию
C++
1
template <class T> void readFromFile(string input_file, T& input)
вторым параметром передаете vector вместо например строки
C++
1
2
3
vector <string> input;
readFromFile(input_file,input);
//input - это ж вектор
И так пройдитесь по всем функциям и проверте.
BigProgrammer
38 / 38 / 3
Регистрация: 20.07.2013
Сообщений: 105
20.11.2013, 17:29     Что не так? #3
Сначала нужно рассмотреть ошибку, которая показана первой. Первые два сообщения являются предупреждениями (warning), и не являются ошибками в строгом смысле. В данном случае компилятор думает, что программист мог перепутать порядок выполнения операторов, но здесь, кажется, всё нормально. Рассмотрим сообщение об ошибке.
d:\laba1_cpp\laba1_cpp\laba1_cpp.cpp(24) : error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::vector<_Ty>' (or there is no acceptable conversion)
Бинарный '>>': не найден оператор, который принимает тип 'std::vector<_Ty>' в качестве правого операнда (или нет допустимого преобразования).
Число в скобках (24) указывает на строку, в которой возникла ошибка.
C++
1
file >> tmp;
Такой версии оператора >> действительно нет, но его можно перезагрузить.
wolf1396
5 / 5 / 0
Регистрация: 07.05.2013
Сообщений: 192
04.01.2014, 11:05  [ТС]     Что не так? #4
Цитата Сообщение от BigProgrammer Посмотреть сообщение
Сначала нужно рассмотреть ошибку, которая показана первой. Первые два сообщения являются предупреждениями (warning), и не являются ошибками в строгом смысле. В данном случае компилятор думает, что программист мог перепутать порядок выполнения операторов, но здесь, кажется, всё нормально. Рассмотрим сообщение об ошибке.

Бинарный '>>': не найден оператор, который принимает тип 'std::vector<_Ty>' в качестве правого операнда (или нет допустимого преобразования).
Число в скобках (24) указывает на строку, в которой возникла ошибка.
C++
1
file >> tmp;
Такой версии оператора >> действительно нет, но его можно перезагрузить.
а как перезагрузить?
Timur_CF
39 / 39 / 3
Регистрация: 12.12.2013
Сообщений: 227
Записей в блоге: 1
04.01.2014, 12:53     Что не так? #5
Warning - это не ошибка. А там очень много Warning.
BigProgrammer
38 / 38 / 3
Регистрация: 20.07.2013
Сообщений: 105
04.01.2014, 20:08     Что не так? #6
Цитата Сообщение от wolf1396 Посмотреть сообщение
а как перезагрузить?
Гуглите или читайте в учебнике "перезагрузка операторов".
Yandex
Объявления
04.01.2014, 20:08     Что не так?
Ответ Создать тему
Опции темы

Текущее время: 02:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru