Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод строки из файла, Требуется вывести определённую строку  
:(
    Опции темы
Exclucive
Дата 16.5.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Тема «Разработка консольного приложения «Гороскоп».
Исходные данные:
Программа запрашивает дату рождения пользователя. Определяется знак зодиака (по месяцу рождения), а также символ года по японскому календарю (например, «Красный дракон»). В зависимости от выпавшего цвета и текущего времени года, выдать некоторое предсказание из базы данных. База данных находится в файле и содержит 20 строк (5 цветов *4 сезона).

Сделал всё кроме вывода предсказания из базы данных.... Помогите плиз.

Код

#include<stdio.h>
#include<iostream.h>
#include<windows.h>
#include<math.h>
void main(){
    int ch,mon,ye,zz;
    char z[]="Введите свою дату рождения в формате число месяц год (Пример: 6 8 1989):  \n";
    CharToOem(z,z);
    char q[]="Предсказание";
    CharToOem(q,q);
    char e[]="Ваш знак зодиака Овен\n";
    CharToOem(e,e);
    char r[]="Ваш знак зодиака Телец\n";
    CharToOem(r,r);
    char t[]="Ваш знак зодиака Близнец\n";
    CharToOem(t,t);
    char y[]="Ваш знак зодиака Рак\n";
    CharToOem(y,y);
    char u[]="Ваш знак зодиака Лев\n";
    CharToOem(u,u);
    char i[]="Ваш знак зодиака Дева\n";
    CharToOem(i,i);
    char o[]="Ваш знак зодиака Весы\n";
    CharToOem(o,o);
    char p[]="Ваш знак зодиака Скорпион\n";
    CharToOem(p,p);
    char a[]="Ваш знак зодиака Стрелец\n";
    CharToOem(a,a);
    char s[]="Ваш знак зодиака Козерог\n";
    CharToOem(s,s);
    char d[]="Ваш знак зодиака Водолей\n";
    CharToOem(d,d);
    char f[]="Ваш знак зодиака Рыбы\n";
    CharToOem(f,f);
    char mih[]="Мышь\n";
    CharToOem(mih,mih);
    char kor[]="Корова\n";
    CharToOem(kor,kor);
    char tig[]="Тигр\n";
    CharToOem(tig,tig);
    char zaj[]="Заяц\n";
    CharToOem(zaj,zaj);
    char dr[]="Дракон\n";
    CharToOem(dr,dr);
    char zm[]="Змея\n";
    CharToOem(zm,zm);
    char loh[]="Лошадь\n";
    CharToOem(loh,loh);
    char ovc[]="Овца\n";
    CharToOem(ovc,ovc);
    char obe[]="Обезьяна\n";
    CharToOem(obe,obe);
    char pet[]="Петух\n";
    CharToOem(pet,pet);
    char sob[]="Собака\n";
    CharToOem(sob,sob);
    char svin[]="Свинья\n";
    CharToOem(svin,svin);
    char zima[]="Вы родились зимой\n";
    CharToOem(zima,zima);
    char vesna[]="Вы родились весной\n";
    CharToOem(vesna,vesna);
    char leto[]="Вы родились летом\n";
    CharToOem(leto,leto);
    char osen[]="Вы родилиьс осенью\n";
    CharToOem(osen,osen);
    char zel[]="Зелёный\n";
    CharToOem(zel,zel);
    char kr[]="Красный\n";
    CharToOem(kr,kr);
    char zh[]="Жёлтый\n";
    CharToOem(zh,zh);
    char bel[]="Белый\n";
    CharToOem(bel,bel);
    char chr[]="Чёрный\n";
    CharToOem(chr,chr);
    char god[]="Вы не могли родиться в этом году!!!\n";
    CharToOem(god,god);
    printf(z,"\n");
    scanf("%d%d%d",&ch,&mon,&ye);
    /*Определение знака зодиака*/

    if ((mon==3&&ch>=21&&ch<=31)||(mon==4&&ch>=1&&ch<=20)) cout<< e;else    
    if ((mon==4&&ch>=21&&ch<=30)||(mon==5&&ch>=1&&ch<=20)) cout<< r;else
    if ((mon==5&&ch>=21&&ch<=31)||(mon==6&&ch>=1&&ch<=21)) cout<< t;else
    if ((mon==6&&ch>=22&&ch<=30)||(mon==7&&ch>=1&&ch<=22)) cout<< y;else
    if ((mon==7&&ch>=23&&ch<=31)||(mon==8&&ch>=1&&ch<=23)) cout<< u;else
    if ((mon==8&&ch>=24&&ch<=31)||(mon==9&&ch>=1&&ch<=23)) cout<< i;else
    if ((mon==9&&ch>=24&&ch<=30)||(mon==10&&ch>=1&&ch<=23)) cout<< o;else
    if ((mon==10&&ch>=24&&ch<=31)||(mon==11&&ch>=1&&ch<=22)) cout<< p;else
    if ((mon==11&&ch>=23&&ch<=30)||(mon==12&&ch>=1&&ch<=21)) cout<< a;else
    if ((mon==12&&ch>=22&&ch<=31)||(mon==1&&ch>=1&&ch<=20)) cout<< s;else
    if ((mon==1&&ch>=21&&ch<=31)||(mon==2&&ch>=1&&ch<=20)) cout<< d;else
    if ((mon==2&&ch>=21&&ch<=28)||(mon==3&&ch>=1&&ch<=20)) cout<< f;else
        printf("ERROR\n");
    /*Определение поры года*/  
    
    if(mon==12||mon==1||mon==2) cout<< zima;else
        if(mon==3||mon==4||mon==5) cout<< vesna;else
            if(mon==6||mon==7||mon==8) cout<<leto;else
                if(mon==9||mon==10||mon==11) cout<<osen;else
                    cout<<"ERROR\n";
     /*Определение цвета по японскомк календарю*/

  if(ye<1924||ye>2032) cout<<god; else
    if (ye-1924<=11||ye-1984<=11) cout<<zel; else
        if (ye-1936<=11||ye-1996<=11) cout<<kr; else
            if (ye-1948<=11||ye-2008<=11) cout<<zh; else
                if (ye-1960<=11||ye-2020<=11) cout<<bel; else
                    if(ye-1972<=11||ye-2032<=11) cout<< chr;else;
  
        /*Определение животного по японскому календарю*/
    zz=ye%12;
    if(zz==0) {cout<<obe;};
    if(zz==1) {cout<<pet;};
    if(zz==2) {cout<<sob;};
    if(zz==3) {cout<<svin;};
    if(zz==4) {cout<<mih;};
    if(zz==5) {cout<<kor;};
    if(zz==6) {cout<<tig;};
    if(zz==7) {cout<<zaj;};
    if(zz==8) {cout<<dr;};
    if(zz==9) {cout<<zm;};
    if(zz==10) {cout<<loh;};
    if(zz==11) {cout<<ovc;};
}

 ! 
archimed7592
Не забываем пользоваться кнопкой "Код" или тэгами [code=xxx][/code]


Это сообщение отредактировал(а) archimed7592 - 17.5.2008, 11:54
PM MAIL   Вверх
rrrFer
Дата 17.5.2008, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



насколько я понял, все так: тебе надо записать 20 строк в файл, каждая строка будет содержать 3 слова
например:
красный весна черный_дракон
-----------------
Затем ты хочешь получить по двум из слов третье, то-бишь вводишь например:
красный весна
***********
получаешь:
черный_дракон...
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
а проблема в том что незнаешь как быть с файлом...если я все правильно понял, то файл из 20 строк меняться не должен, но надо его создать:
Код

#include <iostream>
using namespace std;
void main(){
    struct str{
        char color [20];
        char season[20];
        char symbol[20];
    }s;
    long size=sizeof(str);
    FILE *f=fopen("base.dat","wb");
    rewind(f);
    cout<<"color--season--symbol"<<endl;
    for(int i=0;i<20;i++){
        cout<<"color: ";
        cin>>s.color;
        cout<<"season: ";
        cin>>s.season;
        cout<<"symbol: ";
        cin>>s.symbol;
        cout<<endl;
        fwrite((char*)&s,size,1,f);
    }fclose(f);
}

затем - когда файл создан, надо искань в мен строки:
Код

#include <iostream>
using namespace std;
void main(){
    struct str{
        char color [20];
        char season[20];
        char symbol[20];
    }s;
    char color [20];
    char season[20];
    FILE *f=fopen("base.dat","rb");
    rewind(f);
    cout<<"color--season"<<endl;
    cin>>color;
    cin>>season;
    for(int i=0;i<20;i++){
        fread(&s,sizeof(s),1,f);
        if(!strcmp(s.color,color)&&!strcmp(s.season,season)){
            cout<<"symbol: "<<s.symbol;
            getchar();
            break;
        }
    }
    /*
    for(int i=0;i<20;i++){
        fread((char*)&s,sizeof(str),1,f);
        cout<<"color: "<<s.color<<" ";
        cout<<"season: "<<s.season<<" ";
        cout<<"symbol: "<<s.symbol<<" ";
        cout<<endl;
    }
    */
    getchar();
}

PM MAIL WWW ICQ   Вверх
Exclucive
Дата 17.5.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Нет, к сожалению ты не правильно понял условие. Обьясняю.... Есть база данных с предсказаниями (текстовый файл в котором хранится 20 строк(предсказаний)). В зависимости от выпавшего цвета и поры года нужно вывести одну из этих строк. Вот.
PM MAIL   Вверх
rrrFer
Дата 17.5.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



Exclucive
напиши пример, я не могу понять чем твое условие отличается от того как я понял
PM MAIL WWW ICQ   Вверх
Exclucive
Дата 18.5.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Вот смотри... У меня есть файл .txt, в котором 20 строк(предсказаний). например пользователь ввёл дату рождения 6 8 1989 и у него выпало жёлтый цвет и он родился летом. затем программа должна вывести одно из 20-ти предсказаний из того же файла .txt например "в этом году вас ожидает неимоверная удача". и так нужно предусмотреть 20 вариантов комбинаций цветов и пор года, т.е. 5 цветов * 4 поры года = 20 комбинаций. и каждая из этих комбинаций должна выводить свою строку.
PM MAIL   Вверх
rrrFer
Дата 18.5.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



ну значит я все правильно понял:
просто впиши эти комбинации тоже в файл, ну например:
красный весна в_этом_году_вас_ожидает_неимоверная_удача
фиолетовый зима в_этом_году_вас_ожидает_неимоверная_неудача
и т.д 20 строк.
тогда например комбинация "красный весна" выведет тебе  "в_этом_году_вас_ожидает_неимоверная_удача"
т.е. каждой из этих комбинаций соотвествует своя строчка
если я о5 неправильно понял - напиши целиком свой файл и какой нибудь пример запроса
PM MAIL WWW ICQ   Вверх
Exclucive
Дата 18.5.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



а как это организовать в моей программе??? которую я написал выше. и можно ли обойтись без структур???
PM MAIL   Вверх
rrrFer
Дата 18.5.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



удобно в этой задаче использовать типизированный файл, и тогда надо использовать структуры.
Можно конечно и текстовый файл использовать...но зачем?
как это привинтить к твоей программе я не знаю, у тебя там вообще файла даже нету нигде, но ты знаешь как будет выглядеть этот файл с 20 строк? - тогда для начала используя программу с первого листинга переведи его в двоичный. И вот еще вопрос: в программе которую ты написал, что определяется на выходе? - если определяется цвет и время года то просто дописывай в конец своей программы первый листинг и компиль
PM MAIL WWW ICQ   Вверх
Exclucive
Дата 18.5.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Пиши, пожалуйста на более простом языке. Я ж ведь только 1-й семестр учу С++, и что такое типизированный файл я не знаю.... и структуры я не люблю

Добавлено через 8 минут и 42 секунды
у меня вобще была такая идея: 

когда я буду писать эти предсказния перед каждым предсказанием ставить какой-нибудь номер, потом в цикле организовать поиск этого символа, и если такой символ встретиться, то вывести строку поле этого символа. но я не знаю как это сделать, т.к. плохо знаю теорию, а сидеть за книжкой уже некогда послезавтра нужно курсач сдать уже. вот smile 


PM MAIL   Вверх
rrrFer
Дата 18.5.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



типизированный(двоичный) файл в использовании отличается от обычного, тем что когда вызываешь fopen к способу открытия файла прибавляешь b, то-есть открыть двоичный файл по чтению - пишешь rb, по записи -  wb. и функциями для считывания/записи информации в файл - у обычного файла это функции fscanf/fpprintf, а у типизированного -  fread/fwrite. 
Цитата

Я ж ведь только 1-й семестр учу С++

незнаю, нам их одновременно давали(и типизированные и - нет).
если так то почему ты используешь fread? - это ведь хуже чем fscanf для нетипизированных, потому что в fscanf определены спецификации формата(теже что и для scanf/printf) то есть хочешь ты считать слово(набор символов, ограниченный пробелами или символами перевода строки)- пишешь fscanf(f,"%s",&string); где f - это указатель на файл. а если с fread - то тебе пришлось бы писать цикл, поочереди считывать символы слова и слеплять эти символы с помощью strcat. так вот fread удобен, если ты хранишь в файле отдельные числа или символы, т.е. файл содержит и числа и символы и тебе неплохо бы их удобно считывать. Вот у тебя программа:
Код

 struct str{
        char color [20];
        char season[20];
        char symbol[20];
    }s; 
//...
        cout<<"color: ";
        cin>>s.color;
        cout<<"season: ";
        cin>>s.season;
        cout<<"symbol: ";
        cin>>s.symbol;
        cout<<endl;
        fwrite((char*)&s,size,1,f);

или вместо fwrite тебе пришлось бы писать fprintf аж 3 раза, а главно что считывать когда будешь то как удобно то...
написал  fread(&s,sizeof(s),1,f); и не надо тебе 3 раза считывать отдельно color отдельно season и т.п.
т.е. после этого у тебя есть s.color, s.season и s.symbol - строки.
Цитата

и структуры я не люблю

а надо любить smile потому что в С++ в структурах можно обьявлять функции-члены и от классов то они не сильно отличаются( в с++) и полюбому у вас будет(Обьектно ориентированное программирование...)
PM MAIL WWW ICQ   Вверх
Exclucive
Дата 18.5.2008, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



Обьясни мне, пожалуйста, для чего создавать файл припомощи программы??? Ведь в условии сказанно, что файл уже создан ручками и там написанно 20 строк. Мне нужно только считать с него... и всё.
PM MAIL   Вверх
Exclucive
Дата 18.5.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



вот ещё исходник. это моя задача уже с файлом. только я всё равно не врубаюсь....
там внизу есть содержимое файла.

*/
Код

#include<stdio.h>
#include<iostream.h>
#include<windows.h>
#include<math.h>
#include <fstream.h>

/******************** PROTOTYPES *****************/
void japanise_animal(int);
int japanise_colour(int);
void season(int);
void zodiac_sign(int, int);
void rus(char*);

/******************** MAIN ***********************/
void main()
{
    int day ,month, year, colour = 0;
    char text[1000], file_name[20];
    rus("введите имя файла\n");
    cin.getline(file_name, sizeof(file_name)); //вводишь полное имя файла, например c:\lol\lol2.txt
    ifstream input_file(file_name);

    rus("Введите свою дату рождения в формате число месяц год (Пример: 6 8 1989):  \n");
    cin >> day >> month >> year;
    zodiac_sign(month, day);
    season(month);    
    colour = japanise_colour(year);    
    japanise_animal(year);    
    
    if(month == 12 || month == 1 || month == 2)
    {
        for(int i = 1; i <= colour; i++)
            input_file.getline(text, sizeof(text));
        cout << text << endl;
    }        
    if(month == 3 || month == 4 || month == 5)
    {
        for(int i = 1; i <= (colour + 5); i++)
            input_file.getline(text, sizeof(text));
        cout << text << endl;
    }    
    if(month == 6 || month == 7 || month == 8)
    {
        for(int i = 1; i <= (colour + 10); i++)
            input_file.getline(text, sizeof(text));
        cout << text << endl;
    }    
    if(month == 9 || month == 10 || month == 11)
    {
        for(int i = 1; i <= (colour + 15); i++)
            input_file.getline(text, sizeof(text));
        cout << text << endl;
    }        
}

/*****************Определение знака зодиака***********/
void zodiac_sign(int month, int day)
{    
    if( (month == 3 && day >= 21 && day <= 31) || (month == 4 && day >= 1 && day <= 20) ) 
        rus("Ваш знак зодиака Овен\n");
    else if( (month == 4 && day >= 21 && day <= 30) || (month == 5 && day >= 1 && day <=20) )
        rus("Ваш знак зодиака Телец\n");
    else if( (month == 5 && day >= 21 && day <= 31 ) || (month == 6 && day >= 1 && day <=21 ) )
        rus("Ваш знак зодиака Близнец\n");
    else if( (month == 6 && day >= 22 && day <= 30) || (month == 7 && day >= 1 && day <= 22) )
        rus("Ваш знак зодиака Рак\n");
    else if( (month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 23))
        "Ваш знак зодиака Лев\n";
    else if( (month == 8 && day >= 24 && day <= 31) || (month == 9 && day >= 1 && day <= 23) )
        rus("Ваш знак зодиака Дева\n");
    else if( (month == 9 && day >= 24 && day <= 30) || (month == 10 && day >= 1 && day <= 23) )
        rus("Ваш знак зодиака Весы\n");
    else if( (month == 10 && day >= 24 && day <= 31) || (month == 11 && day >= 1 && day <= 22 ) )
        rus("Ваш знак зодиака Скорпион\n");
    else if( (month == 11 && day >= 23 && day <= 30) || (month == 12 && day >= 1 && day <= 21) )
        rus("Ваш знак зодиака Стрелец\n");
    else if( (month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 20) )
        rus("Ваш знак зодиака Козерог\n");
    else if( (month == 1 && day >= 21 && day <= 31) || (month == 2 && day >= 1 && day <= 20) )
        rus("Ваш знак зодиака Водолей\n");
    else if( (month == 2 && day >= 21 && day <= 28) || (month == 3 && day >= 1 && day <= 20) )
        rus("Ваш знак зодиака Рыбы\n");
}

/*****************Определение поры года****************/  
void season(int month)    
{
    if(month == 12 || month == 1 || month == 2)
        rus("Вы родились зимой\n");
    if(month == 3 || month == 4 || month == 5)
        rus("Вы родилиьс весной\n");
    if(month == 6 || month == 7 || month == 8)
        rus("Вы родились летом\n");
    if(month == 9 || month == 10 || month == 11)
        rus("Вы родились осенью\n");
}

/*************Определение цвета по японскомк календарю****************/
int japanise_colour(int year)
{
  if (year - 1924 <= 11 || year - 1984 <= 11)
  {
      rus("Зелёный ");
      return 1;
  }
  else if (year - 1936 <= 11 || year - 1996 <= 11) 
  {
      rus("Красный "); 
      return 2;
  }
  else if ( year - 1948 <= 11 || year - 2008 <= 11) 
  {
      rus("Жёлтый "); 
      return 3;
  }
  else if ( year - 1960 <= 11 || year - 2020 <= 11) 
  {
      rus("Белый "); 
      return 4;
  }
  else if ( year - 1972 <= 11 || year - 2032 <= 11) 
  {
      rus("Чёрный "); 
      return 5;
  }  
}    

/***************Определение животного по японскому календарю************/
void japanise_animal(int year)
{
    int y = year % 12;

    if(y == 0)
        rus("Обезьяна\n");
    else if(y == 1)
        rus("Петух\n");
    else if(y == 2)
        rus("Собака\n");
    else if(y == 3)
        rus("Свинья\n");
    else if(y == 4)
        rus("Мышь\n");
    else if(y == 5)
        rus("Корова\n");
    else if(y == 6)
        rus("Тигр\n");
    else if(y == 7)
        rus("Заяц\n");
    else if(y == 8)
        rus("Дракон\n");
    else if(y == 9)
        rus("Змея\n");
    else if(y == 10)
        rus("Лошадь\n");
    else if(y == 11)
        rus("Овца\n");
}

/**************** rus **********************/
void rus(char *PtrStr)
{
     char Str[500];
     CharToOem(PtrStr,Str);  
     printf(Str);
}

/*
в файле предсказания должны распологаться в порядке, кот показан ниже.. иначе будет выводить не то предсказание

пример файла...
(Winter; green) to you, has carried, you will not die yet... 
(winter; red) to you has again carried, you will not die this summer... 
(winter; yellow) I sympathize, to you *****... 
(winter; white) you are still alive?.. ???? ??.. 
(winter; black) ???... How it was possible to you?.. 
(spring; green) ?????? an animal, whether not so? 
(spring, red) ??????? 
(spring; yellow) where mine ???????? 
(spring; white) I still wait.. 
(spring; black) a star in a shock 
(summer; green) delta KU 
(Winter; green) to you, has carried, you will not die yet... 
(winter; red) to you has again carried, you will not die this summer... 
(winter; yellow) I sympathize, to you *****... 
(winter; white) you are still alive?.. ???? ??.. 
(winter; black) ???... How it was possible to you?.. 
(spring; green) ?????? an animal, whether not so? 
(spring, red) ??????? 
(spring; yellow) where mine ???????? 
(spring; white) I still wait.. 
(spring; black) a star in a shock 

PM MAIL   Вверх
rrrFer
Дата 20.5.2008, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



Exclucive
Цитата

Обьясни мне, пожалуйста, для чего создавать файл припомощи программы???

потому что много удобней создавать типизированный файл с помощью программы
и я уже писал что много удобнее тебе было бы работать с типизированным файлом
Цитата

только я всё равно не врубаюсь....

а что именно не понятно?
PM MAIL WWW ICQ   Вверх
Exclucive
Дата 20.5.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.5.2008

Репутация: нет
Всего: нет



по какому принципу работает функция чтения из файла. В моей проге.
PM MAIL   Вверх
rrrFer
Дата 20.5.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: 0
Всего: 1



Exclucive
Цитата

по какому принципу работает функция чтения из файла. В моей проге.

Код

ifstream input_file(file_name);

-то-бишь используется входной файловый поток
Код

colour = japanise_colour(year);    

-определил цвет(число от 1 до 5)
Код

for(int i = 1; i <= colour; i++)
            input_file.getline(text, sizeof(text));

считал столько строчек, какое значение имеет color
затем ты выводишь последнюю считанную строчку. Вообще тебе и нужна была только последняя строчка, но т.к. неизвестен размер каждой строчки(число символов, то перейти сразу на нужную строку было нельзя...в этом текстовые файлы уступают двоичным.
ну а
Цитата

о какому принципу работает функция чтения из файла

читай про файловые потоки(модуль <fstream>)

Это сообщение отредактировал(а) rrrFer - 20.5.2008, 12:37
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.