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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2011, 00:02   #1
soirkar
Пользователь
 
Регистрация: 21.06.2011
Сообщений: 13
По умолчанию Чтение из текстового файла

Не читает, если предложение содержит пробелы. При вводе с клавиатуры проблему решил fflush'ем
read:
Код:
puts(" --\\\\Текстовый файл//--\n");
fscanf(fo,"%d", &d);
for(int i=0; i < d; i++)
{
fscanf(fo,"\n%s\t", goo[i].code);
fscanf(fo,"%s\t", &goo[i].name);
fscanf(fo,"%d\t", &goo[i].quant);
fscanf(fo,"%d\t", &goo[i].price);
fscanf(fo,"%d\t", &goo[i].sumprice);
}
break;
write
Код:
fprintf(fo,"%d\n",d);
for(int i=0; i<d; i++ )
{
fprintf( fo, "%s\t%s\t%d\t%d\t%d\t%d\n", goo[i].code,goo[i].name,goo[i].quant,goo[i].price,goo[i].sumprice);
}

Последний раз редактировалось Stilet; 22.06.2011 в 16:22.
soirkar вне форума Ответить с цитированием
Старый 22.06.2011, 09:44   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Не читает, если предложение содержит пробелы.

fgets
Rififi вне форума Ответить с цитированием
Старый 22.06.2011, 16:18   #3
soirkar
Пользователь
 
Регистрация: 21.06.2011
Сообщений: 13
По умолчанию

Эту проблему решил, появилась другая
Код:
char name[128];
p=head;
puts("\tВведите наименвание товара для поиска: ");
scanf("%s",&name);

while (p != NULL)
{
if(strcmp(p->name, name)==0)
{
system("CLS");
puts("\n\tЗАПИСЬ НАЙДЕНА...\n");
puts("\nНаименование\t);
printf("\t%15s",p->name);
break;
}
if (p->next == NULL)
{
puts("\n\tЗАПИСЬ НЕ НАЙДЕНА...\n");
break;
}
Со строками не работает.
При замене scanf на gets, программа не находит запись(строку) в файле, мне нужно обратное.
Поправьте, пожалуйста, код до корректного.

Последний раз редактировалось Stilet; 22.06.2011 в 16:22.
soirkar вне форума Ответить с цитированием
Старый 22.06.2011, 16:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
При замене scanf на gets
Зачем заменял? Смысл замены? Рифифи тебе про совсем другую функцию говорил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.06.2011, 16:32   #5
soirkar
Пользователь
 
Регистрация: 21.06.2011
Сообщений: 13
По умолчанию

Это уже совсем другая программа, она записывает в файл, оттуда в буфер и сравнивает. Не могу написать для работы со строками. Если вводить одно слово, то все работает.
soirkar вне форума Ответить с цитированием
Старый 22.06.2011, 16:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если вводить одно слово, то все работает.
Т.е. ты вводишь через пробел (скажем) несколько слов, и хочешь все их найти в тексте?
Может ты всетки опишешь задачу подробно чтоб мы не гадали.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.06.2011, 16:58   #7
soirkar
Пользователь
 
Регистрация: 21.06.2011
Сообщений: 13
По умолчанию

Программа должна искать в файле название, состоящее из нескольких слов, например.
пытался сделать еще таким образом, но тут уж что-то совсем безобразное:
Код:
if (head == NULL)
{
puts("\tСПИСОК ПУСТ...\n\n");
}
else if (head != NULL)
{
char name[128];
p=head;
puts("\tВведите наименвание товара для поиска: ");
for (int k=0; name[k]!='\0'; k++) 
name[k]=getchar();

while (p != NULL)
{
if(strcmp(p->name, name)==0)
{
system("CLS");
puts("\n\tЗАПИСЬ НАЙДЕНА...\n");
puts("\n\tНаименование\t")
printf("\t%15s",p->name);
break;
}
if (p->next == NULL)
{
puts("\n\tЗАПИСЬ НЕ НАЙДЕНА...\n");
break;
}
soirkar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение с текстового файла salwator Паскаль, Turbo Pascal, PascalABC.NET 0 11.06.2011 15:49
чтение текстового файла Аглан Microsoft Office Access 2 15.02.2011 22:14
Чтение из текстового файла MooNChilDUA Общие вопросы C/C++ 2 13.01.2011 19:25
Чтение текстового файла Kasper1 Общие вопросы по Java, Java SE, Kotlin 5 17.12.2010 15:57
Чтение массива из текстового файла. Metil Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 12.01.2009 22:53