Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Буфер / 13 сообщений из 13, страница 1 из 1
10.03.2005, 14:43
    #32953556
regromus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
написать функцию char*find
1.из входного потока читает литеру за литерой пока не встретит не цифру или конец файла.
2.если считанная литера - цифра то она помещается в очередную позицию буфера строки .Если это не цифра , то сторока дополняется символом "\0" а литера остается в буфере buf_lit. Если буфер исчерпан а на входе цифра то чтение продолжается пока не встретиться цифра но литера в буфер не заносится.

Объясните пжлст задание (желателен код), за любую помощь буду благодарен. Особенно непонятно что тут имеется ввиду под буфером строки.

THX.
...
Рейтинг: 0 / 0
10.03.2005, 16:45
    #32953971
dwl
dwl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
нифига не понял. Особливо вот это
авторЕсли буфер исчерпан а на входе цифра то чтение продолжается пока не встретиться цифра но литера в буфер не заносится.
...
Рейтинг: 0 / 0
11.03.2005, 10:33
    #32954914
regromus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
Это у вас на форуме такие ответы на вопросы:

вопрос:Объясние задание
ответ:нифига не понял

Ламы хватит рейтинг повышать таким способом!!!
...
Рейтинг: 0 / 0
11.03.2005, 10:50
    #32954970
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
быд бы модератором - забанил бы :-)
...
Рейтинг: 0 / 0
11.03.2005, 16:08
    #32956146
regromus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
Валяйте
...
Рейтинг: 0 / 0
11.03.2005, 17:10
    #32956398
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
regromusВаляйте

Ну вот -- обиделся
...
Рейтинг: 0 / 0
11.03.2005, 19:04
    #32956685
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
да и пусть что обиделся, если чел не понимает задания
авторОбъясните пжлст задание (желателен код)
и при этом обзывается
авторамы хватит рейтинг повышать таким способом!!!
то дорога ему известна...
а чего цацкаться?
...
Рейтинг: 0 / 0
11.03.2005, 19:04
    #32956687
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
жалко модера нет
...
Рейтинг: 0 / 0
11.03.2005, 23:22
    #32956859
miniСЛОН
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
regromusнаписать функцию char*find
1.из входного потока читает литеру за литерой пока не встретит не цифру или конец файла.
2.если считанная литера - цифра то она помещается в очередную позицию буфера строки .Если это не цифра , то сторока дополняется символом "\0" а литера остается в буфере buf_lit. Если буфер исчерпан а на входе цифра то чтение продолжается пока не встретиться цифра но литера в буфер не заносится.

Объясните пжлст задание (желателен код), за любую помощь буду благодарен. Особенно непонятно что тут имеется ввиду под буфером строки.
насколько я понял составляются 2 массива:
1) цифры и '\0' (buf_num)
2) не цифры (buf_lit)
допустим размер масива литер 3 и на входе такая последовательность
2a3s4d5555f
то получим следующее:
buf_num = '2\03\045555'
buf_lit = 'asd'
на f все закончится, т.к. буфер литер заполнен и f не есть цифра
...
Рейтинг: 0 / 0
12.03.2005, 09:18
    #32957000
regromus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
Спасибо miniСЛОН.
Вот код:

Код: 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.
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
char * buf_num[ 256 ];
char * buf_lit[ 256 ];
int i= 0 ,m,b= 1 ;
int k= 0 ;
int buf;
char * j;
char * find_const()
{
 FILE*in;
 in=fopen("c:\input.txt","r");
 if(in==NULL)
  {
   printf ("error in opening of the file");
   return  0 ;
  }
 else
 while ((j=fgetc(in))!='\n')
 {
  if (isdigit(*(j+b)))
   {
     buf_num[i]=&j[b];i++;b++;
   }
  else
  {
     *(buf_num[i])='\0';i++;
     if (k<buf)
   {
       buf_lit[k]=&j[b];
       k++;
       b++;
   }
  }
 }
}
int main()
{
 clrscr();
 printf("enter value of buffer buf_lit");
 scanf("%d",&buf);
 find_const();
 printf("values of buf_lit:\n");
 for(m= [b]0 ;m<k;m++)
 printf("%c\n",*buf_lit[m]);
 printf("values of buf_lit:\n");
 for(m= 0 ;m<i;m++)
 printf("%c\n",*buf_num[m]);
 getch();
}

Теперь ,кто может, объясните пжлста вот это:

После чтения, содержимое буфера buf_num копируется в оперативную память и адрес начала строки возвращается ф-ей.Если память не может быть выделена, то ф-я возвращает NULL.

За любую помощь буду благодарен.
...
Рейтинг: 0 / 0
12.03.2005, 14:24
    #32957159
miniСЛОН
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
я бы все же написал так
Код: 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.
#include <stdio.h>
#include <ctype.h>
#include <conio.h>

char* find_const(int buf)
{
	int i, k, b;
	char *j;
	char buf_num[ 256 ];
	char buf_lit[ 256 ];
	char *buf_num_return;
	
	FILE *in;
	in=fopen("c:\input.txt","r");
	if(in == NULL) {
		printf ("error in opening of the file");
		return NULL;
	}
	while ((j = fgetc(in)) != EOF) {
		if (isdigit(*(j+b))) {
			buf_num[i] = j[b];
			i++;	b++;
		} else {
			*(buf_num[i]) = '\0';
			i++;
			if (k < buf) {
				buf_lit[k] = j[b];
				k++;	b++;
			}
		}
	}
	fclose(in);
	buf_num_return = (char*)calloc(buf+ [b]1 , sizeof(char));
	if(buf_num_return != NULL)
		strncpy(buf_num_return, buf_num,  3 *sizeof(char));
		
	return buf_num_return;
}

int main()
{
	int m, i;
	int buf;
	char *buf_num;
	
	clrscr();
	printf("enter value of buffer buf_lit");
	scanf("%d", &buf);
	buf_num = find_const(buf);
	if(buf_num == NULL) {
		printf("find_const() returned NULL\n");
		exit( 1 );
	}
	printf("values of buf_num:\n");
	for(m =  0 ; m < i; m++)
		printf("%c\n", *buf_num[m]);
	free(buf_num);
	getch();
}

regromusТеперь ,кто может, объясните пжлста вот это:
После чтения, содержимое буфера buf_num копируется в оперативную память и адрес начала строки возвращается ф-ей.Если память не может быть выделена, то ф-я возвращает NULL.
последние 3 строки в find_const(int)

ps: на правильность кода не претендую, правил с notepad++, не компилял
...
Рейтинг: 0 / 0
13.03.2005, 04:21
    #32957508
regromus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
спасибо miniСЛОН
...
Рейтинг: 0 / 0
25.03.2005, 10:32
    #32980147
MagZzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Буфер
Помогите мне!! У меня похожая задача.
Очень нужно переделать !!

Написать функцию char*find–idt()
1.помещает в string[] содержимое буфера литеры buf-lit;
2.из входного потока читает литеру за литерой пока не встретит не букву и не цифру или конец файла. 3. считанную литеру помещает в очередную позицию буфера строки, если она цифра или буква. Если наступило окончание чтения литеры , то конец строки дополняется символом "\0" а литера остается в буфере buf_lit. Если буфер исчерпан, но на входе буква или цифра , то чтение продолжается без заполнения буфера строки.
4.после чтения, содержимое буфера (buf_num) копируется в оперативную память и адрес начала строки возвращается функцией. Если память не может быть выделена, то функция возвращает NULL.

За любую информацию буду очень благодарен!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Буфер / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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