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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с текстом в файле 
:(
    Опции темы
TGrey
Дата 3.3.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день.
Хочу узнать, как можно осуществить мой коварный план по уничтожению земли...
К примеру у меня есть файл, а нем записи типо
Код

1)текст...........................................
..........................
............................
.............................[color=red];[/color]

2)текст..............................
....................................
..................................
.....................................
...............................[color=red];[/color]

3)тескт................[color=red];[/color]

И мне нужно для начала найти все цифры(1,2,3), а после случайно вывести текст цифры, что выпадет. Но я почитал книжку, но так и непонял, как доставать из файла нужный мне текст и только.
Пожалуйста пример. Меня интерисует только часть, где достается текст.
Спасибо!
PM MAIL   Вверх
bsa
Дата 4.3.2008, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Требуемый язык программирования не очень понятен из вопроса.
C++
Код
#include <fstream>
#include <string>
#include <iostream>
int main()
{
     std::string text;
     std::ifstream file("file.txt");
     while(file.good()) { //пока файл не закончится...
          std::getline(file, text); //читаем из файла в переменную text очередную строку
          std::cout << text << '\n'; //выводим в стандартный вывод
     }
     return 0;
}
Си:
Код
#include <stdio.h>
int main(int argc, char *argv[])
{
      char text[1024];
      FILE *file = fopen("file.txt", "rt");
      if (file != NULL) {
           while( !feof(file) ) { /*пока файл не закончился... */
                 fgets(text, sizeof(text), file);  /* читаем в массив text очередную сроку, но не более, чем может поместиться в массив */
                 fputs(text, stdout); /* выводим в стандарный вывод */
           }
           fclose(file); /*закрываем файл */
      }
      return 0;
}

PM   Вверх
Craft
Дата 4.3.2008, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Насколько я тебя понял то тебе покатит чтото наподобие этого. Сразу предупреждаю код компилировал поб C++Builder так что могут быть ошибки. У меня компилиться. 
Код

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
int main()
{
       clrscr();
        string slovo="";
        string stroka_proverku="";
        cout<<"Vveditj neveluke slovo dlja powyky jogo iz fajla: ";
        scanf("%s",slovo);
        ifstream inFileF("F.txt",ios::in);
        if(!inFileF)
                {
                cerr<<"File could not be opened"<<endl;
                exit(1);
                }
        string powyk="";
        int i=0;
        while(inFileF>>powyk)
                {
                for(int i=0;i<=strlen(slovo.c_str());i++)
                        {
                        int position=powyk.find(slovo[i]);
                        if(position!=string::npos)
                                {
                                printf("%s",slovo);
                                printf("%s",powyk);//вывод твоей строки только учти что надо поставить условие 
                                //чтоб искало до  символа который значит переход на новою строку.
                                cout<<endl;
                                }
                        }
                }
        getch();
        return 0;
}

PM MAIL   Вверх
TGrey
Дата 4.3.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо. Я тут пробовал, пробовал и в итоге, что-то похожее получилось, но как всегда не без проблем.
Сейчас читает из файла, но не видит пробелы, тоесть выводит текст без пробелов. Как можно поправить?
Код

ifstream qs2("Questions.oxk");

while(qs2.good())
{
        qs2>>test;
        if(test!=';')
                if(test==' ' || test=='\0')
                        Label2->Caption=Label2->Caption + " " + test;
                else
                        re->Text = re->Text + test;
                        //Label2->Caption=Label2->Caption + test;
        else
                break;
}


это делал в билдере.
PM MAIL   Вверх
Craft
Дата 4.3.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Логично что не выводит пробелы. У тебя из файла извлекается текст без пробелов. У своем коде поменяй 
Код

ifstream qs2("Questions.oxk");

while(qs2.good())
{
        qs2>>test;
        if(test!=';')
                if(test==' ' || test=='\0')
                        Label2->Caption=Label2->Caption + " " + test;//Никогда код не выполниться
                else
                        re->Text = re->Text +" "+ test;//Здесь добавь " " то текст будет с пробелами
                        //Label2->Caption=Label2->Caption + test;
        else
                break;

}

Это если у тебя строка re->Text тыпа string. Зделай пошаговою отладку в C++Builder и сам увидиш.
PM MAIL   Вверх
bsa
Дата 5.3.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



operator>>() читает символы отличные от разделителей. Именно поэтому я использовал getline.
PM   Вверх
TGrey
Дата 5.3.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Но так тогда везде будут пробелы?! В файле текст
(1)Hello how are you?;

Подобные слова, но когда оно его выводит то выводит все вместе. Мне тогда тоже getline воспользоватся попробовать?!
PM MAIL   Вверх
bsa
Дата 5.3.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Цитата(TGrey @ 5.3.2008,  19:27)
Но так тогда везде будут пробелы?! В файле текст
(1)Hello how are you?;

Подобные слова, но когда оно его выводит то выводит все вместе. Мне тогда тоже getline воспользоватся попробовать?!

Тебе решать. Каждая функция для своих целей.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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