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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
opax
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 21
#1

declaration of 'std::string s' shadows a parameter - C++

18.02.2012, 09:17. Просмотров 1893. Ответов 6
Метки нет (Все метки)

PHP
1
<?php echo 'Приветствую тебя, '.$user->get('username') ?> <?php endif ?>
О многоуважаемый, зри в void CH.

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
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
 
 
using namespace std;
int q=0;
int stat_first[32],stat_second[32]; //Частотные Характеристики для 1 и 2 текста
char alf[]= {'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п',
             'р','с','т','у','ф','х','ц','ч','щ','ш','ь','ы','ъ','э','ю','я',};
char alf2[]= {'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п', //этот алфавит будет другим и нужен будет для шифра подстановки
             'р','с','т','у','ф','х','ц','ч','щ','ш','ь','ы','ъ','э','ю','я',}; // и для дальнейшего восстановления текста по ЧХ 
 
 
template<class T>
void qs(T* a,char* b,long N) { //быстрая сортировка массива ЧХ с привязкой алфавита
 
  long i = 0, j = N;        // поставить указатели на исходные места
  T temp,temp2,p;
 
  p = a[ N>>1 ];        // центральный элемент
 
  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      temp2 = b[i]; b[i] = b[j]; b[j] = temp2;
      i++; j--;
    }
  } while ( i<=j );
 
  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) qs(a,b,j);
  if ( N > i ) qs(a+i,b+i,N-i);
}
 
/*Находим ЧХ для текста*/
void CH(const char* filename,int* stat,char* alf,string* s){
  ifstream in(filename);
  stringstream a;
  a << in.rdbuf();
  string s(a.str()); //ругается на эту конструкцию, так как обьявил не правильно.
  //Вопрос. как объявить в параметрах функции передачу строки правильно, 
  //если я хочу использовать каждый раз один поток?
 
  for (int i=0; i<=32; i++)
    {
      for (int j=0; j<=s.size(); j++)
        {
          if ((s[j]==alf[i]))
            {
              stat[i]=stat[i]+1;
            }
        }
      q+=stat[i]; //считаем общее кол-во букв
    };  
    qs(stat,alf,32); //сортируем массив ЧХ с привязкой к алфавиту
    cout<<"Количество букв в тексте "<<q<<" из них:"<<endl;
    for (int j=0; j<=32; j++)
    {
      cout<<alf[j]<<" = "<<stat[j]<<endl;    
    } 
   a.str().resize(0); // убираемся в потоке для следующего файла
   a.str().clear();
   a.str( "" );
} 
 
int main(int argc, char *argv[])
{
  setlocale(LC_CTYPE, "rus");
  
 
  //CH("text_1.txt",stat_first,alf,string s);
  //CH("text_2.txt",stat_second,alf2,string g);
 
 
 
  system("PAUSE");
  return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 09:17     declaration of 'std::string s' shadows a parameter
Посмотрите здесь:
C++ TPosition.cpp|49|error: declaration of 'TMatrix Turn' shadows a parameter
C:\Projects\mmz\Compile\CompileAMD64\mmzCompileAMD64\TProjec t.cpp|74|error: declaration of 'std::ofstream File' shadows C++
C++ cannot convert parameter 1 from 'int' to 'std::string &'
C++ запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
C++ Почему std::string_view МЕДЛЕННЕЕ, чем std::string?
C++ Как правильно перевести std::wstring в std::string ?
C++ Как привести std::wstring к std::string?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
18.02.2012, 10:40     declaration of 'std::string s' shadows a parameter #2
C++
1
void CH(const char* filename,int* stat,char* alf,string& s) //по ссылке
C++
1
string s(a.str());//а это что? редефинишн? у тебя s передалось уже, зачем еще объявлять
C++
1
s(a.str());//вот так
opax
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 21
18.02.2012, 10:52  [ТС]     declaration of 'std::string s' shadows a parameter #3
и того:
Миниатюры
declaration of 'std::string s' shadows a parameter  
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
18.02.2012, 11:09     declaration of 'std::string s' shadows a parameter #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
покажи вызов. то бишь мэйн
 
int main(int argc, char *argv[])
{
  setlocale(LC_CTYPE, "rus");
  
//тут нет объявленной строки. это 1.
 
string s;
 
// CH("text_1.txt",stat_first,alf,string s); 
//и здесь надо 
CH("text_1.txt",stat_first,alf,s)
  //CH("text_2.txt",stat_second,alf2,string g);
 
 
 
  system("PAUSE");
opax
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 21
18.02.2012, 11:17  [ТС]     declaration of 'std::string s' shadows a parameter #5
пожалуйте,в main всё верно, таже ошибка. без обьявленного стринга внутри функции конструкция отказывается работать, можно было бы конечное убрать из параметров функции строку и подчищать её в конце, но мне потом с этими строками нужно работать.
Миниатюры
declaration of 'std::string s' shadows a parameter  
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
18.02.2012, 11:42     declaration of 'std::string s' shadows a parameter #6
opax, все верно. будет ругаться. скажи чего нужно то?
передать в строку данные из потока?


тогда

C++
1
2
3
4
ifstream in(filename);
  stringstream a;
  a << in.rdbuf();
  s.append(a.str());//вместо s(a.str()) поскольку s уже создана была в мэйне
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2012, 13:27     declaration of 'std::string s' shadows a parameter
Еще ссылки по теме:
C++ Std::string and std::wstring convert
C++ Где и почему используют ту или иную строку std::string, char[], System::String^ ?
C++ Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина?
отсутствует оператор "<<" соответствующий этим операндам (std::ostream << const std::string) C++
C++ ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*')

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

Или воспользуйтесь поиском по форуму:
opax
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 21
18.02.2012, 13:27  [ТС]     declaration of 'std::string s' shadows a parameter #7
спасибо, то что нужно.
Yandex
Объявления
18.02.2012, 13:27     declaration of 'std::string s' shadows a parameter
Ответ Создать тему
Опции темы

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