#include <string.h>
#include <stdio.h>
#include <conio.h>
#include<io.h>
int main(void)
{
const char* city[]={"Lviv","London","Kyiv","Moscow","Minsk"};
int i;
clrscr();
FILE *f;
f=fopen("c:\\time2.dat","w+r");
for(i=0;i<5;i++)
{
fprintf(f,"%1d %s\n",i+1,city);
}
char *ptr, c;
printf("char=");
scanf("%s",&c);
for(i=0;i<5;i++)
{
fscanf(f,"%1d %s\n",&i+1,city);
ptr = strchr(city, c);
if((int(ptr)==(-28))&&(!eof))
printf("%s\n",city);
else
printf("The character was not found\n");
}
getch();
return 0;
}
поиск в файлах
1 <название 1> 10
2 <название 2> 20
...
Мне надо сделать,чтобы при вводе одного символа(например A,B,...) на текстовый экран выдавало все возможные названия,начинающийся с буквы А,B,...
Написал что то типа:
Код:
Код:
(int(ptr)==(-28))
Код:
fscanf(f,"%1d %s\n",&i+1,city);
ptr = strchr(city, c);
if((int(ptr)==(-28))&&(!eof))
ptr = strchr(city, c);
if((int(ptr)==(-28))&&(!eof))
Почитайте внимательней описание функций fscanf и функций работы со строками.
Код:
ptr = strchr(city, c);
if((int(ptr)==(-28))&&(!eof))
if((int(ptr)==(-28))&&(!eof))
это я взял с этого примера,немного переделав под свою тему:
Код:
#include <string.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
clrscr();
char string[20];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr);
else
printf("The character was not found\n");
getch();
return 0;
}
#include <stdio.h>
#include <conio.h>
int main(void)
{
clrscr();
char string[20];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr);
else
printf("The character was not found\n");
getch();
return 0;
}
Дело в том,что с файлами работал мало,поэтому код с ошибками и работает неправильно,подскажите пожалуйста,у меня уже прям сил нет с ним,а программу доледать нужно до пятницы:(
fscanf(f,"%1d %s\n",&i+1,city);
&i+1 означает адрес, смещенный на (размер инт)*1 относительно адреса хранения i, по этому адресу скорее всего ничего не запишется и выпадет ошибка, читать нужно в i, т е писать &i (& берет адрес)
к тому же fscanf(f,"%1d %s\n",&i+1,city); читает данные в
const char* city[]={"Lviv","London","Kyiv","Moscow","Minsk"};
это константные данные, их вроде как нельзя менять.
Не уверен можно ли задавать такие параметры открытия файла w+r.
Подружитесь с Отладчиком
Код:
if((int(ptr)==(-28))&&(!eof))
printf("%s\n",city);
else
printf("The character was not found\n");
printf("%s\n",city);
else
printf("The character was not found\n");
написал
Код:
if(ptr)
printf("%s\n",city);
printf("%s\n",city);
и заработало,т.е как только программа видит строчку с большой буквой N(A,B,...,Z)она пишет эту строчку.Но я так вижу здесь никто не может помочь,жаль...
Цитата: psyco
Но я так вижу здесь никто не может помочь,жаль...
Еще один. :mad:
Что вы понимаете под словом "помочь"? Вам помогли: показали на ваши ошибки, которые вы должны исправить (пусть не я, но другой пользователь).
Что вам еще надо? Чтобы выложили готовый код? Пожалуйста, идите в тему студенты или работа, назначайте цену, которую готовы заплатить за решение задачи и будет вам код.
Вчера вечером ушел домой с работы с намерением сегодня утром вам этот код выложить. Последняя фраза убила желание начисто.
Знаете, обычно в таких случаях отправляют читать подпись kot_'а. Не буду и я исключением - почитайте.
P.S. Извиняюсь за оффтоп.
Вот Sashok123 спасибо за помощь,помог увидеть некоторые ошибки в коде.
Я не прошу вылаживать мне здесь целый код,я же сам вылажил 2 раза,я прошу хоть на 2 строчки показать как должно выглядеть и работать это.
Ивините тогда за Но я так вижу здесь никто не может помочь,жаль...,я вчера все нервы себе этой программой вымотал,целый день ждал ответа на форумах и ничего:(
Я бы посоветовал топикстартеру поменьше обижаться (потому как на обиженных в лучшем случае воду возят) - помощь вам оказали, причем непосредственно во втором сообщении. Никто не будет за нерадивого студента делать работу - если лично вам это не нравиться - то это лично ваша проблема. Кроме того - предупреждаю последний раз - на нытье халявщиков "нууу никто не хочет..." - здесь отвечают просто - бан. и как правило навсегда. Надеюсь это понятно? Все что вы думаете по этому поводу - я сразу предупреждаю мне абсолютно паралельно. Задайте в гугле "как правильно задавать вопросы", вы прочтете много интересного. Тема закрыта.