![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Всем привет.Вот этой функцией я заполняю структуру,но нельзя ставить пробелы.Помогите сделать с побелами,без них нельзя,приходится ставить "_".Заранее Спасибо
void add() { if ((fp=fopen("Grasses.db","a+t"))==NULL) { perror ("Warning!"); getch(); exit (0); } number=i; printf ("The name of a plant: "); scanf ("%s",book[number].name ); printf ("The latin name of a plant: "); scanf ("%s",&book[number].namelat ); printf ("Place of growth of a plant: "); scanf ("%s",&book[number].place ); printf ("Life expectancy of a plant: "); scanf ("%s",&book[number].age ); printf ("Economic purpose of a plant : "); scanf ("%s",&book[number].application ); fwrite (&book[number], sizeof(book[number]), 1, fp); fclose(fp); printf ("The new plant is added in base.......... "); printf ("Press any key to continue\n"); getch(); } |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
так ты считываеш стоку или заполняеш структуру?
и в чем проблема с пробелом? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
ну я записываю в поле name-два слова разделенные пробелом,а записывается все это: первое слово в первое поле,второе-во второе.А мне надо чтобы записывались оба слова в первое поле.scanf же-не читает пробелов,и в этом проблема.Может надо использовать другую функцию?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
ну так fread' ом читай до enter' а (\r/\n)
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
А как?Разве он не из файла читает?Я просто с клавиатуры ввожу два или больше слова и мне надо чтбы вся эта строка записалась в одно поле name,а затем также заполнить остальные.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
fread(stdin, ...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| 0x07L |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва Репутация: нет Всего: 5 |
Есть еще функция "gets" из <stdio.h>. Для файлов, соответственно, fgets. Есть и UNICODE-версии.
Это сообщение отредактировал(а) 0x07L - 19.7.2006, 14:38 |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
а вот простенький вопрос:у меня есть структура struct grasses book[250] в ней 5 полей.Я создаю временную struct grasses tmp и мне надо полю tmp.place присвоить "луг".Но некк не получается
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
код показывай.
явно вместо memcpy простое присваивание на char' ах используеш... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
void find()
{ int zero; counter(); k=0; zero=0; char a[]="луг"; char b[]="лекарственное"; struct grasses tmp; tmp.place ????????????? tmp.application ??????????????? printf("<<the medicinal grasses growing on meadows>> "); for (i=0; i<=n; i++) { if (strcmp(tmp.place,book[i].place)==0) { if (strcmp(tmp.application,book[i].application)==0) { book[k]=book[i]; } } else { goto end; } k++; end:; } n=k; printf ("Searching result: \n\n"); if (k==0) { printf("Any plant is not found.....\n\n"); } else { i=k; output(); } printf ("Press any key to continue\n"); getch(); } |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
strcpy(tmp.place, "123")
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Почему-то не работает,проверьте
void find() { counter(); k=0; struct grasses tmp; strcpy(tmp.application,"лекарственное"); strcpy(tmp.place,"луг"); printf("<<the medicinal grasses growing on meadows>>\n"); for (i=0; i<=n; i++) { if (strcmp(tmp.place,book[i].place)==0) { if (strcmp(tmp.application,book[i].application)==0) { book[k]=book[i]; } } else { goto end; } k++; end:; } n=k; printf ("Searching result: \n\n"); if (k==0) { printf("Any plant is not found.....\n\n"); } else { i=k; output(); } printf ("Press any key to continue\n"); getch(); } |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
и что не работает? строка скопировалась -- скопировалась. что еще нужно?
+ почему бы отладчиком не воспользоваться?.. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Ну сравнивает и не выводит,а вот если прописать вместо копирования и ввести вручную
,то все работает. |
|||
|
||||
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
нет все нормально,только вот сравниваю я со словом из русских букв.Поэтому ничего не получается.Как быть????
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |