Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / переменная ws, c++ из мс экспресс 2009 - / 8 сообщений из 8, страница 1 из 1
02.12.2013, 22:13
    #38486686
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
делю файл на слова и считаю частоту использования слов.
char**ws - это таблица слов.
пока она была локальная - все было хорошо,
стала глобальной - появилась ошибка

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Source.cpp
Source.cpp(51) : error C2872: 'ws' : ambiguous symbol
        could be 'Source.cpp(17) : char **ws'
        or       'ws'
Source.cpp(58) : error C2872: 'ws' : ambiguous symbol
        could be 'Source.cpp(17) : char **ws'
        or       'ws'
LINK : warning LNK4001: no object files specified; libraries used
libcmtd.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
a.exe : fatal error LNK1120: 1 unresolved externals

то есть, какой ws уже есть и путается с моей таблицей.
Что это?

пысы
мысли про
про вред глобальных переменных желательно пропустить


Код: plaintext
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.
//#include"Header.h"
#include <iostream>
#include <ctype.h>
#include<stdio.h>
#include<string.h>

using namespace std;


extern int getword (char*w);
extern int add     (char *ws[], int cnts[], int wsl,char *w);
extern int indexof (char *ws[],             int wsl,char *w);

	
	int *cnts=0;
//	char **wrds=0;
	char **ws=0;           //<---------------




void main(int argc, char **argv)
{

//	char **ws=0;
	int c;
//	int *cnts=0;
	char nextw[50]={0};
	int wsl=0;
	int ind=0;
	int pflag=0;
	char w_sort[50] = {0};

	while((c=getword(nextw))!=EOF)
	{		

		if(isspace(c))
			continue;
		if(ispunct(c))
		{
			if(pflag!=0)
			{
				nextw[0]=c;
				nextw[1]=0;	
			}
			else 
				continue;
		}

	//	ind=indexof(wrds,wsl,nextw);
		ind=indexof(ws,wsl,nextw);     //<------------------

		if(ind>=0)
			(cnts[ind])++;
		else
		{
//			wsl=add(wrds,cnts,wsl,nextw);
			wsl=add(ws,cnts,wsl,nextw);  //<--------------------------
			cerr<<"\nyes "<< wsl;
		}
	}
}

int indexof(char *ws[], int wsl,char *w)
{

	for(int i=0;i<wsl;i++)
	{
		if(strcmp(ws[i],w)==0)
			return i;
	}

	return -1;
}

int add(char *ws[], int *cnts, int wsl,char *w)
{

	int *cnts1=(int *)malloc(sizeof(int)*(wsl+1));
	char **ws1=(char **)malloc(sizeof(char *)*(wsl+1));

	for(int i=0;i<wsl;i++)
	{
		ws1[i]=ws[i];
		cnts1[i]=cnts[i];
	}

	free(cnts);
	cnts=cnts1;
	free(ws);
	ws=ws1;
	fprintf(stderr,"\n--%d", ws);

	cnts[wsl]=1;
	ws[wsl]=(char *)malloc(strlen(w)+1);
	strcpy(ws[wsl],w);
	wsl++;
	return wsl;
}


int getword(char *w)
{
	int c=0;
	int i=0;
	w[0]=0;
	for (i=0;;i++)
	{
		c=getchar();
		if (c==EOF) break;
		else if (ispunct(c))
		{
			if(i>0)
				ungetc(c,stdin);
			break;
		}
		else if (isspace(c))
		{
			if(i>0)
				ungetc(c,stdin);
			break;
		}
		else{
			w[i]=c;
			w[i+1]=0;
		}

	}

	if(i>0)
		c=w[0];
	return c;
}
...
Рейтинг: 0 / 0
02.12.2013, 22:31
    #38486696
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
tchingizто есть, какой ws уже есть и путается с моей таблицей.
Что это?
Ты ошибку внимательно прочитай, тебе с точностью до строки указывается где вторая
переменная объявляется. А первая ws - это параметр.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.12.2013, 23:02
    #38486723
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
// char **wrds=0;
char **ws=0; //<--------------- вот тут.
да
и шо?

вот изменил
//
char **wrds=0;
// char **ws=0; //<--------------- вот тут.

второй переменной нет.
есть только первая, которую нельзя переконвертить к чар **.


Source.cpp(52) : error C2664: 'indexof' : cannot convert parameter 1 from
'overloaded-function' to 'char *[]'

кто такая оверлоадет функция и где она задается?
...
Рейтинг: 0 / 0
02.12.2013, 23:43
    #38486752
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
tchingizкто такая оверлоадет функция и где она задается?
Отсюда не видно что ты там за хрень пытаешься функции скормить в 52-й строке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.12.2013, 23:49
    #38486755
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
хрень выглядит как ws
и выделена стрелочкой в первом посте
40: if(ispunct(c))
41: {
42: if(pflag!=0)
43: {
44: nextw[0]=c;
45: nextw[1]=0;
46: }
47: else
48: continue;
49: }
51: // ind=indexof(wrds,wsl,nextw);
52: ind=indexof(ws,wsl,nextw); //<------------------
54: if(ind>=0)
55: (cnts[ind])++;
56: else
...
Рейтинг: 0 / 0
03.12.2013, 00:12
    #38486773
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
tchingizхрень выглядит как ws
И является этим: http://msdn.microsoft.com/en-us/library/vstudio/db4fefz1.aspx
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.12.2013, 00:37
    #38486791
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
сенкс
...
Рейтинг: 0 / 0
09.12.2013, 01:48
    #38493558
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
переменная ws, c++ из мс экспресс 2009 -
забыл
оператор разрешения области видимости надо
Код: plaintext
1.
	 ind=indexof(::ws,wsl,nextw);
и все будет хорошо
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / переменная ws, c++ из мс экспресс 2009 - / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]