Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2011, 00:15   #1
vlados92
Пользователь
 
Регистрация: 22.02.2011
Сообщений: 12
По умолчанию Проверьте правильность кода. Почему выдаёт ошибку?

Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.


Текст программы

Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <iostream>	// подключаем библиотеки
using namespace std;

int main()
{
	FILE *fp; // указатель на файл
	char c;
	int tmp=0,num_w=0;
	char *srch=new char[];

	if((fp=fopen("1.dat","r"))==NULL)	// открываем файл
	{
		std::cout<<"There is no file in directory\n";
		getchar();
		getchar();
		return 1;
	}

	fseek(fp,0,SEEK_END); //устанавливаем позицию на конец файла 
	int num=ftell(fp); // определяем количество символов в файле
	fseek(fp,0,SEEK_SET); //устанавливаем позицию на начало файла 
	char *ch=new char[num];
	while(!feof(fp))
	{
		c=fgetc(fp);
		ch[tmp]=c; // запись символов в массив char
		tmp++;
		
	}
	for(int i=0;i<num;i++)
		cout<<ch[i];
	int p=0;
	int l=0;
	int q;
    for(int i=0;i<num;i++)
			{
				if (ch[1]!=' '||ch[i]!='!'||ch[i]!='?'||ch[i]!='.')
					p++;
				if (ch[i]=='!'||ch[i]=='?'||ch[i]=='.'||ch[i]=='\n'||ch[i]==' ')
				{
					if(l<(p-1)){l=p-1; q=i-p+1;}
					 p=0;
					}

			}
	char* mas=new char[l];
int j=0;
int kol=0;
int mn=0;
for (int i=q;i<q+l;i++)
		{mas[j]=ch[i]; j++;}

	for(int i=0;i<num;i++)
		if(ch[i]==mas[0])
			{ int k,qw=0;  
			for(k=i; k<i+l; k++)
				{if(ch[k]==mas[qw])mn++;
			if(mn==l){kol++; mn=0;} 
				qw++;}
			}
	cout<<endl;
	for (int i=0;i<l;i++)
	cout<<mas[i];
	cout<<"      Vstrechaetcya :"<<kol<<" RAZ";
	
	
	getchar();
	getchar();
	return 0;
}
Выдаёт ошибку на Visual Studio 2010 fatal error LNK1120: 1 неразрешенных внешних элементов. Что сделать чтобы её не выдавало?

Последний раз редактировалось Stilet; 02.03.2011 в 08:57. Причина: дополнение
vlados92 вне форума Ответить с цитированием
Старый 02.03.2011, 09:30   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

всё ок, перезапустите проект
onewho вне форума Ответить с цитированием
Старый 02.03.2011, 12:04   #3
vlados92
Пользователь
 
Регистрация: 22.02.2011
Сообщений: 12
По умолчанию

Да уже работает!!!
С помощью текстового редактора
создать файл , содержащий текст ,
длина которого не превышает 1000
символов ( длина строки не должна
превышать 70 символов) . Имя
файла должно иметь расширение
DAT.
Написать программу, которая :
• Выводит текст на экран дисплея ;
• По нажатию произвольной
клавиши поочередно выделяет в
тексте заданное слово (заданное
слово вводится с клавиатуры );
• Выводит текст в файл , выкидывая
из него заданное слово и удаляя
лишние пробелы.
Пользовательский интерфейс
Hello my dearbear . Nice to see you.
Текст программы
Код:
#include <stdio .h >
#include <conio. h>
#include <windows . h>
#include <iostream > / / подключаем
библиотеки
using namespace std ;
int main ()
{
FILE * fp; / / указатель на файл
char c ;
int tmp= 0 ,num _w = 0 ;
char * srch= new char[];
if(( fp= fopen(" 1 .dat ", "r "))==NULL ) //
открываем файл
{
std: :cout<<" There is no file in
directory\ n ";
getchar();
getchar();
return 1 ;
}
fseek( fp,0 ,SEEK _END ); //
устанавливаем позицию на конец
файла
int num = ftell (fp); / / определяем
количество символов в файле
fseek( fp,0 ,SEEK _SET ); / /
устанавливаем позицию на начало
файла
char * ch= new char[num ];
while(! feof( fp))
{
c= fgetc( fp);
ch[tmp]=c ; // запись символов в
массив char
tmp++ ;
}
for( int i =0 ;i <num ;i+ + )
cout<<ch [i];
cout<<endl <<"Enter word to search
\n ";
cin>>srch ; / / вводим искомую строку
char * pos= strstr( ch,srch ); // индекс
вхождения подсторки в строку
int res = (int) (pos- ch+ 1); / / находим
индекс совпадения
res- -;
if( pos!= NULL )
{
for ( int i= res; i< num;i ++ )
if (ch[ i]==' .'|| ch[ i]=='\n '|| ch[i ]==' ')
{
tmp=i +1 ;
break;
}
}
int ttp =tmp -res ;
int len = num- ttp;
char* mas= new char[len ];
for ( int i= 0; i< res; i+ +)
mas[i ]=ch[i ];
int j =res ;
for ( int i= tmp;i< num ;i+ + )
{
mas[j ]=ch[i ]; // запись
преобразованного текста в файл
j+ +;
}
FILE * fp2= fopen(" 2 .dat " ,"w "); //
запись в файл
for( int i =0 ;i <len ;i ++ )
{
cout<<mas [i];
}
fwrite(mas, sizeof(char) ,len ,fp2 );
getchar();
getchar();
return 0 ;
}
все ли задачи выполнены в коде?
Если нет можете дополнить чего не
хватает

Последний раз редактировалось ACE Valery; 03.03.2011 в 10:07.
vlados92 вне форума Ответить с цитированием
Старый 02.03.2011, 12:52   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Код:
std::cout<<" There is no file in
directory\ n ";
std -- лишнее, поскольку пространство имен уже подключено.

Цитата:
Код:
getchar();
getchar();
зачем два раза?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 02.03.2011, 12:58   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <windows.h>
Вы ни одной из них не используете.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверьте правильность. helpme1 Общие вопросы C/C++ 3 23.11.2010 17:23
Проверьте правильность написания кода в delphi neomaximus Помощь студентам 2 09.04.2009 17:29
Проверьте на правильность!! Dawystrik Общие вопросы Delphi 2 21.03.2009 21:04
Проверьте правильность Аленушка Помощь студентам 6 07.01.2009 17:07
Почему ошибку выдаёт? Inbox Общие вопросы Delphi 14 24.06.2007 02:15