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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wolf1396
5 / 5 / 0
Регистрация: 07.05.2013
Сообщений: 194
#1

>< студия косячит или я? - C++

11.01.2014, 14:38. Просмотров 213. Ответов 1
Метки нет (Все метки)

помогите разобраться, я уже задолбался воевать со студией, постоянно что-то не нравится, некоторые буквы в слове синие, остальные черные. например, float, oat-синие, fl - черные, => ошибка
может и здесь так?

если нет, посоветуйте, как исправить

win 7, profes, x64, VS2012
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
// lw1cpp.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <string.h>
using namespace std;
/*
Функция чтения из файла
 
1-переменной file присваивается файл, открытый для чтения;
2-пока не будет достигнут конец файла, будут считываться данные,
записываться в переменную для хранения temp, а данные из переменной temp
будут добавляться в конец вектора input;
3-закрывается файл, чтобы не было ошибок;
 
*/
template <typename T> void readFromFile(std::string input_file, vector <T> input)
{
    ifstream file(input_file.c_str());  //1
    T temp;
    while (!file.eof())     //2
    {
        file >> temp;
        input.push_back(temp);
    }
    file.close();   //3
}
 
 
 
 
 
 
/*
Функция запись в файл
 
1-переменной file присваивается файл, открытый для записи;
2-циклом записываем данные из вектора output в файл
3-закрывается файл, чтобы не было ошибок;
 
(с англ. filing == запись в файл)
*/
template <typename T> void filing(string output_file, vector <T> input)
{
    ofstream file(output_file.c_str()); //1
    vector <T> output::iterator iter_out;
    for (iter_out=output.begin();iter_out!=output.end(); iter_out++)
    {
        file << *iter_out;
    }
    file.close();
}
 
template <typename T> bool compareItems(T x, T y);
template <typename T> void sortItems(vector <T> input, vector <T>& output);
 
string input_file,output_file;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");//Ф-ция исп-ся для корректного отображения русского языка
    /*
    кол-во входных пар-ов должно быть равно 5
    1 - "имя исполняемого файла (например, lw1cpp.exe)"
    2 - "-f/i/s"
    3 - "-a/d"
    4 - "название_исходного_файла"
    5 - "название_файла_для_сохранения_результата"
    */
    if (argc==5)    
    {
        //если тип float    
        if (argv[1][1]=='f')
        {
            std::vector <float> input;
            std::vector <float> output;
            readFromFile(input_file, input);
            sortItems(input, output);
            filing(output_file, output);
 
        }
        //если тип int
        if (argv[1][1]=='i')
        {
            std::vector <int> input;
            std::vector <int> output;
            readFromFile(input_file, input);
            sortItems(input, output);
            filing(output_file, output);
        }
        //если тип string
        if (argv[1][1]=='s')
        {
            std::vector <string> input;
            std::vector <string> output;
            readFromFile(input_file, input);
            sortItems(input, output);
            filing(output_file, output);
        }
    }
    //в случае, если кол-во входных пар-ов <5, будет выведена ошибка:
    else
    {
        std::cout << "Проверьте кол-во параметров запуска и повторите запуск" << std::endl;
    }
 
 
    return 0;
}
template <typename T> bool compareItems(T x, T y)
{
    return x>y;
}
 
 
template <typename T> void sortItems(vector <T> input, vector <T>& output)
{
    if (argv[2][1]=='a')
    {
        sort(const T& x,const T& y);
        memcpy(input.begin(), input.end(); vector <T>& ouput);
    }
    if (argv[2][1]=='d')
    {
        sort(const T& x,const T& y, compareItems);
        memcpy(input.begin(), input.end(); vector <T>& ouput);
    }
}

Кликните здесь для просмотра всего текста
1>------ Построение начато: проект: lw1cpp, Конфигурация: Debug Win32 ------
1> lw1cpp.cpp
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(121): error C2065: argv: необъявленный идентификатор
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(81): см. ссылку на создание экземпляров функции шаблон при компиляции "void sortItems<float>(std::vector<_Ty>,std::vector<_Ty> &)"
1> with
1> [
1> _Ty=float
1> ]
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(123): error C2065: x: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(123): error C2275: T: недопустимое использование этого типа в качестве выражения
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(123): error C2065: y: необъявленный идентификатор
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(123): error C2780: void std::sort(_RanIt,_RanIt,_Pr): требует аргументов: 3, имеется: 2
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(124): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(124): error C2660: memcpy: функция не принимает 2 аргументов
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(124): error C2059: синтаксическая ошибка: )
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(124): error C2530: ouput: ссылки должны быть инициализированы
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(126): error C2065: argv: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(128): error C2143: синтаксическая ошибка: отсутствие ")" перед "const"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(128): error C2780: void std::sort(_RanIt,_RanIt,_Pr): требует аргументов: 3, имеется: 0
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(128): error C2780: void std::sort(_RanIt,_RanIt): требует аргументов: 2, имеется: 0
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3699): см. объявление "std::sort"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(128): error C2059: синтаксическая ошибка: )
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(129): error C2143: синтаксическая ошибка: отсутствие ")" перед ";"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(129): error C2660: memcpy: функция не принимает 2 аргументов
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(129): error C2059: синтаксическая ошибка: )
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(129): error C2530: ouput: ссылки должны быть инициализированы
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(50): error C2653: output: не является именем класса или пространства имен
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(82): см. ссылку на создание экземпляров функции шаблон при компиляции "void filing<float>(std::string,std::vector<_Ty>)"
1> with
1> [
1> _Ty=float
1> ]
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(50): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "iter_out"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(50): error C2065: iter_out: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(51): error C2065: iter_out: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(51): error C2065: output: необъявленный идентификатор
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(51): error C2228: выражение слева от ".begin" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(51): error C2228: выражение слева от ".end" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(53): error C2065: iter_out: необъявленный идентификатор
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3699): см. объявление "std::sort"
1>c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(27): error C2679: бинарный ">>": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(1053): может быть "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(1060): или "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(1067): или "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(1074): или "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(1084): или "std::basic_istream<_Elem,_Traits> &std::operator >><char,std::char_traits<char>,T>(std::basic_istream<_Elem,_Traits> &&,_Ty &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> T=std::string,
1> _Ty=std::string
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(193): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(199): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(206): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(213): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(232): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(267): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(286): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(312): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(330): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(348): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned long &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(368): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(387): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(406): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(425): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(443): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(461): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\istream(480): или "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> при попытке сопоставить список аргументов "(std::ifstream, std::string)"
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(99): см. ссылку на создание экземпляров функции шаблон при компиляции "void readFromFile<std::string>(std::string,std::vector<_Ty>)"
1> with
1> [
1> _Ty=std::string
1> ]
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1> c:\users\user\documents\visual studio 2012\projects\lw1cpp\lw1cpp\lw1cpp.cpp(131): см. объявление "T"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3864): см. объявление "std::sort"
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\algorithm(3699): см. объявление "std::sort"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 14:38     >< студия косячит или я?
Посмотрите здесь:

C++ Афинные преобразования. Косячит поворот
Косячит сортировка диагонали матрица C++
Студия 2010 C++
Так установилась ли студия? C++
C++ Ух ты мне визуал студия что-то подсказывает
C++ Ошибка со списком, возможно студия тупит
CreatProcess() и 2012 Студия C++
C++ Студия выдает ошибки
Студия не воспринимает операторы С++ C++
Студия зависает намертво при отладке C++
C++ Ругается студия на индефикатор
C++ Вылетает студия

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
11.01.2014, 14:52     >< студия косячит или я? #2
да код кривой на каждом шагу.
и ошибки об этом говорят. почитать не судьба разве:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T> void sortItems(vector <T> input, vector <T>& output)
{
    if (argv[2][1]=='a') // что такое argv? что-то глобальное? нет!
    {
        sort(const T& x,const T& y); что такое x и y? зачем к ним типы. разве так функции вызываются? нет!
        memcpy(input.begin(), input.end(); vector <T>& ouput); // тут зачем тип для output?
    }
    if (argv[2][1]=='d')
    {
        sort(const T& x,const T& y, compareItems);
        memcpy(input.begin(), input.end(); vector <T>& ouput);
    }
}
C++
1
2
3
4
5
6
7
8
9
10
template <typename T> void filing(string output_file, vector <T> input) // инпут по ссылке наверно надо.
{
    ofstream file(output_file.c_str()); //1
    vector <T> output::iterator iter_out; // что это за запись? что такое тут output?
    for (iter_out=output.begin();iter_out!=output.end(); iter_out++)
    {
        file << *iter_out;
    }
    file.close();
}
остальное не смотрел.
смотрите ошибки и справляйте. вероятность того, что вы наткнетесь на баг в студии - ничтожна мала
Yandex
Объявления
11.01.2014, 14:52     >< студия косячит или я?
Ответ Создать тему
Опции темы

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