#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
void main ()
{
ofstream outClientFile("slovar.dat", ios::out);
if (! outClientFile)
{
cerr<< "File not open!!!"<< endl;
exit(1);
}
cout<<"BBedite na4alo slova: ";
char str[] = "Question";
char ch;
cin>>ch;
if (tolower(str[0]) == tolower(ch) )
cout<< "Takie slova:\n" <<str;
else
cout<<"Slova na dannyy bykvy otsytstvyyt";
getch();
}
Работа в С++ с файлами
=========================================================
Я решил подключить не массив слов, а уже имеющийся текстовый файл со словами, как связать его с прогаммой?
/**********************************POISK************************************/
void poisk(FILE *fPtr)
{
struct workData work={0,"lastName","dName",0};
char lastName[15];
if((fPtr=fopen("worker.txt","r"))==NULL)/*Esla faila net to vuvesti soobshen ob oshibke*/
{
printf("Nevozmozhno otkrut' fail\n","worker.txt");
exit(1);
}
puts("Poisk rabochego\n"); /*Tozhe samoe chto i (printf)*/
printf("Vvedite familiuy i inicialu sotrydnika:\n");
scanf("%s",&work.lastName); /*Vvod familii dlja poiska*/
while(fread(&work,sizeof(struct workData),1,fPtr) && strcmp(work.lastName,lastName)!=0); /*operator kotorui sravnivaet stroki i esli naxodit nyzhnyuy to vuvodit ee na pechat'*/
{
printf("%-6d%-16s%-11s%-6d\n",work.acctNum,work.lastName,work.dName,work.data);
}
fclose(fPtr);
}
Цитата: Belomorkan
Ета прога тебе поможет, переделай просто ее.
На C++ это будет выглядеть проще.
Т.к. словарь - это скорее всего текстовый файл, используй файловые потоки: fstream (ifstream).
Для решения твоей задачи информацию (хотя бы индекс словаря) лучше загружать в память, а не перечитывать каждый раз.
http://xammep.nm.ru/doc/cpp/index.html - если надо. тут можешь скачать книги по С++: Дейтел(1.6 mg), Страуструп..
2Belomorkan
не надо copy/past делать, ссылку на тему можно дать. и не путай С с С++ плиз.
2Belomorkan
не надо copy/past делать, ссылку на тему можно дать. и не путай С с С++ плиз.
В принципе код пойдет, но тут работа с стркутурами, а в этой программе нужно реализовать работу с строками, так что нужно все поменять))) Но все равно спасибо!
Короче вышло так, но чето мне всегда выдает что на любую букву нет слова, а когда захожу в файл со словами то он пустой, че тут надо доработать??
так вся твоя работа с файлами заключена в том что ты его открываешь и ВСЕ, тот пример что я тебе привела - это сравнение первой буквы строки с символом, а не работа с файлом. где ты читаешь с файла, и почему ofstream, а не ifstream?
Тю емоё, тогда надо шото придумать...если есть какие-то варианты может напишешь!!
1 - берешь книгу, изучаешь нужный тебе матерьял и пишешь. только ты это делаешь, а не я.
2 - ждешь доброго программера, который тебе напишет, может быть.
а у меня времени нет на чужии лабы :)
!!!! А можно выложить полный код поиска ?? даже без файла. А то человек один давно это ищет. Заодно посмотрю ,что тут с файлами сделать можно
Если будет чето то напиши обязательно
Народ выручите меня пожалуста, помогите с этим заданием!Ниче вообще не получается
Вот я начал, а как продолжить не знаю???
Код:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
void main ()
{
ofstream outClientFile("d:\\KS-05-3\\My program\\slovar.txt", ios::app);
if (! outClientFile)
{
cerr<< "File not open!!!"<< endl;
exit(1);
}
cout<<"BBedite na4alo slova: ";
char str[] = "Question";
char ch;
cin>>ch;
if (tolower(str[0]) == tolower(ch) )
cout<< "Takie slova:\n" <<str;
else
cout<<"Slova na dannyy bykvy otsytstvyyt";
getch();
}
#include <fstream.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
void main ()
{
ofstream outClientFile("d:\\KS-05-3\\My program\\slovar.txt", ios::app);
if (! outClientFile)
{
cerr<< "File not open!!!"<< endl;
exit(1);
}
cout<<"BBedite na4alo slova: ";
char str[] = "Question";
char ch;
cin>>ch;
if (tolower(str[0]) == tolower(ch) )
cout<< "Takie slova:\n" <<str;
else
cout<<"Slova na dannyy bykvy otsytstvyyt";
getch();
}
MagicPRO, пора уже начинать учиться и делать что-то самому!
Код:
int look_up( FILE *fp )
{
char tmp_lname[20+1];
int ctr = 0;
fprintf(stdout, "\n\nPlease enter last name to be found: ");
gets(tmp_lname);
if( strlen(tmp_lname) != 0 )
{
if (fseek( fp, 0, SEEK_SET ) == 0)
{
fread(&rec, 1, sizeof(rec), fp);
while( !feof(fp))
{
if( strcmp(rec.lname, tmp_lname) == 0 )
/* if matched */
{
fprintf(stdout, "\n%s %s %s - %s", rec.fname,
rec.mname,
rec.lname,
rec.phone);
ctr++;
}
fread(&rec, 1, sizeof(rec), fp);
}
}
fprintf( stdout, "\n\n%d names matched.", ctr );
}
else
{
fprintf( stdout, "\nNo name entered." );
}
return(ctr);
}
{
char tmp_lname[20+1];
int ctr = 0;
fprintf(stdout, "\n\nPlease enter last name to be found: ");
gets(tmp_lname);
if( strlen(tmp_lname) != 0 )
{
if (fseek( fp, 0, SEEK_SET ) == 0)
{
fread(&rec, 1, sizeof(rec), fp);
while( !feof(fp))
{
if( strcmp(rec.lname, tmp_lname) == 0 )
/* if matched */
{
fprintf(stdout, "\n%s %s %s - %s", rec.fname,
rec.mname,
rec.lname,
rec.phone);
ctr++;
}
fread(&rec, 1, sizeof(rec), fp);
}
}
fprintf( stdout, "\n\n%d names matched.", ctr );
}
else
{
fprintf( stdout, "\nNo name entered." );
}
return(ctr);
}
Если есть время и желание, то можешь сделать буду блогадарен. Вот тот код у меня самый последний!!!
Завтра я тебе пришлю файлик только будет он ни просто Си написан Ок???Я просто в С++ не работал хотя это одно и тоже из С++ я переделывал под С и все ок
ок, спасибо
Тут такая тема я тебе скидываю файлик с поиском, но припоять ты наверно сам сможешь к своему,обьявишь новый прототип типа
void sort(FILE *f);
и потом в прогу вгонишь в свою.
У меня завтра колок по физике, но я о тебе незабыл и попробую помочь будут вопросы пиши
С программированием только начал, но шас гляну твой код и буду сам пытаться его доделать если чето не будет появляться то напишу!
Уже пару дней сочиняю этот код и никак не получается че за ошибка в потоке ifstream:
Код:
#include <fstream.h>
#include <stdlib.h>
#include <conio.h>
void outputLine(char*);
void main()
ifstream inClientFile ("slovar.txt", ios::in);
if (! inClientFile)
{
cerr << "File could not be open"<<endl;
exit(1);
}
cout<<"Vvedite na4alo bykvy"<<endl;
char str[] = "zapros";
char ch;
inClientFile >> ch;
while (! inClienFile.eof () )
{ if (ch < 0)
outputFile (ch);
inClientFile >> ch;
}
{if (tolower(str[0] == tolower(ch))
cout<<"Takie slova:\n"<<str;
}
void outputLine(char *key)
{
cout<< setiosflags(ios::left)<<key<<endl;
getch();
}
#include <stdlib.h>
#include <conio.h>
void outputLine(char*);
void main()
ifstream inClientFile ("slovar.txt", ios::in);
if (! inClientFile)
{
cerr << "File could not be open"<<endl;
exit(1);
}
cout<<"Vvedite na4alo bykvy"<<endl;
char str[] = "zapros";
char ch;
inClientFile >> ch;
while (! inClienFile.eof () )
{ if (ch < 0)
outputFile (ch);
inClientFile >> ch;
}
{if (tolower(str[0] == tolower(ch))
cout<<"Takie slova:\n"<<str;
}
void outputLine(char *key)
{
cout<< setiosflags(ios::left)<<key<<endl;
getch();
}
я не знаю че делать, прочитал пару книг, все сделал как там написано
Считай файл в массив, гемороя меньше будет :)