Форум программистов, компьютерный форум CyberForum.ru

Работа с файлами: получить заданную строку - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
09.07.2010, 16:45     Работа с файлами: получить заданную строку #1
Даны текстовый файл, строка s. Получить все строки файла f, содержащие в качестве фрагмента строку s.
 Комментарий модератора 
Не надо злоупотреблять Caps Lock! Уважай окружающих и, возможно, к тебе отнесутся также.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2010, 16:45     Работа с файлами: получить заданную строку
Посмотрите здесь:

C++ Функция поиска вхождения строки в заданную строку в С
C++ Заменить заданную строку матрицы а на вектор b
Переход на заданную строку C++
C++ Определить количество вхождений подстроки в заданную строку
работа со строками. Перевернуть, заданную пользователем строку, в отдельной функции C++
C++ Заданную строку перевести в массив из слов
Строки. Уменьшить заданную строку на К символов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
09.07.2010, 18:56     Работа с файлами: получить заданную строку #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() 
{
    string s,buf,name;
    cout<<"Enter name of file : ";
    getline(cin,name);
    ifstream file(name.c_str()); 
    cout<<"Enter a string : ";
    getline(cin,s);
    while(!file.eof())
    {
        getline(file,buf);
        if(buf.find(s) != -1)
            cout<<buf<<endl;
    }
system("Pause");
return 0;
}
вводишь имя файла вместе с расширением .txt, водишь строку s
получаешь результат
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
09.07.2010, 20:44  [ТС]     Работа с файлами: получить заданную строку #3
Спасибо большое
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 18:09  [ТС]     Работа с файлами: получить заданную строку #4
А есть другой вариант а то у меня чёт в начале проги не лады с бибилотеками
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
12.07.2010, 18:33     Работа с файлами: получить заданную строку #5
Цитата Сообщение от kotofey Посмотреть сообщение
А есть другой вариант а то у меня чёт в начале проги не лады с бибилотеками
Попробуй к имени каждого заголовочного файла добавить ".h".
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 18:56  [ТС]     Работа с файлами: получить заданную строку #6
29 38 39 42 declaration syntax error
60 unterminated string or character constant
60 character constant too long
187 declaration syntax error
А другой вариант программы можно как то сделать
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
12.07.2010, 18:59     Работа с файлами: получить заданную строку #7
Цитата Сообщение от kotofey Посмотреть сообщение
А другой вариант программы можно как то сделать
А где гарантия, что другой вариант программы будет у тебя работать? Может быть, лучше уж разобраться со своим компилятором?
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 19:05  [ТС]     Работа с файлами: получить заданную строку #8
ААА ТОЧняк у тебя же написан код С++ да ?
Мне на С надо
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
12.07.2010, 19:08     Работа с файлами: получить заданную строку #9
Цитата Сообщение от kotofey Посмотреть сообщение
ААА ТОЧняк у тебя же написан код С++ да ?
Мне на С надо
Ты совершенно прав, мой друг, только не у меня, а у [Freeman]'a. Впрочем, принцип остается тот же: открываешь файл, читаешь его по строкам и ищешь среди них заданную строку.
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 19:15  [ТС]     Работа с файлами: получить заданную строку #10
Можешь пожалуйста написать на обычном С у меня просто горит ситуация
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
12.07.2010, 20:58     Работа с файлами: получить заданную строку #11
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h>
int main()
{
    const int s_len=100,buf_len=100; /*максимальная длинна строк 100 символов*/
    char      s[s_len], buf[buf_len];
 
    FILE* fin;
    fin=fopen("Text.txt","r"); /* имя файла Text.txt */
 
    printf("Enter a string : ");
    fgets(s,s_len,stdin);
    s[strlen(s)-1]=0;
 
    while(!feof(fin))
    {
        fgets(buf,buf_len,fin);
        if( strstr(buf,s) != NULL )
            printf("%s",buf);
    }
    fclose(fin);
        return 0;
}
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 21:03  [ТС]     Работа с файлами: получить заданную строку #12
6 constant expression required in function main

s[s_len], квадратную скобку выделяет
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
12.07.2010, 21:09     Работа с файлами: получить заданную строку #13
У меня на VC++ 2008 все работает, но код именно C, попробуй заменить на s[100] и с buf так же,
какой у тебя компилятор?
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 21:13  [ТС]     Работа с файлами: получить заданную строку #14
Ну вабще Turbo c

Добавлено через 2 минуты
Вроде исправил 0 ошибок а как вводить точно и что вводить
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
12.07.2010, 21:13     Работа с файлами: получить заданную строку #15
Вводить строку s, выводит все строки файла Text.txt содержащие строку s
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 21:17  [ТС]     Работа с файлами: получить заданную строку #16
когда он пишет enter the string мы что пишем например
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
12.07.2010, 21:21     Работа с файлами: получить заданную строку #17
ну вот у тебя в файле например:
off topic
turn on turn off
blah
aaaaaaaa,
когда он пишет enter the string вводим: off
он тебе выводит:
off topic
turn on turn off
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 21:25  [ТС]     Работа с файлами: получить заданную строку #18
когда я пишу off он мне ничего не пишет и не выводит он переходит на новую строчку и зависает
[Freeman]
34 / 34 / 6
Регистрация: 07.06.2010
Сообщений: 118
12.07.2010, 21:31     Работа с файлами: получить заданную строку #19
значит файл наверно не открывается, у тебя где файл лежит? попробуй имя файла явно указать, в программе на месте Text.txt напиши например С:\\Text.txt взависимости куда файл кинешь

Добавлено через 2 минуты
вот Я поправил теперь если файл не откроется он напишет
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <string.h>
int main()
{
        const int s_len=100,buf_len=100; /*максимальная длинна строк 100 символов*/
        char      s[100], buf[buf_len];
 
        FILE* fin;
        fin=fopen("Text.txt","r"); /* имя файла Text.txt */
        if(!fin)
        {
            printf("Open ERROR\n");
            return 0;
        }
 
        printf("Enter a string : ");
        fgets(s,s_len,stdin);
        s[strlen(s)-1]=0;
 
        while(!feof(fin))
        {
                fgets(buf,buf_len,fin);
                if( strstr(buf,s) != NULL )
                        printf("%s",buf);
        }
        fclose(fin);
        return 0;
}
Кинь файл в ту же папку где и exe'шник лежит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2010, 21:34     Работа с файлами: получить заданную строку
Еще ссылки по теме:

Работа с файлами. Как добавить переход на новую строку при записи? C++
C++ Прочитать из файла заданную строку
C++ Функция: замена подстроки в строке на заданную строку
Как передать заданную строку матрицы в функцию? C++
C++ Разрядить пробелами заданную строку

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kotofey
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 89
12.07.2010, 21:34  [ТС]     Работа с файлами: получить заданную строку #20
fin=fopen("Text.txt" здесь надо написать или где
Yandex
Объявления
12.07.2010, 21:34     Работа с файлами: получить заданную строку
Ответ Создать тему
Опции темы

Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru