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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
#1

Считать из файла от определенного символа(слова) до определенного символа(слова) - C++

21.10.2013, 18:46. Просмотров 1763. Ответов 3
Метки нет (Все метки)

Считываем текст из файла. Допустим от слова "Qwerty" до слова "Uiop". Примерно догадываюсь как это реализовать

C
1
2
3
4
5
6
7
8
9
10
11
FILE *f; 
char s; //сюда записывать нужный отрезок
  
f=fopen("c:\\Test.txt", "r");
if (f!=NULL)
   {
     fscanf(f, "%s" );
         for(int i=0; i<10000; i++)
     if (A[i]='Q' && A[i+1]='w' && ...)
        ....//??
   }
Думаю, мое задание понятно. Наверняка, у кого-нибудь есть решенное подобное или если кто-нибудь поможет на данном примере, буду очень признателен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 18:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считать из файла от определенного символа(слова) до определенного символа(слова) (C++):

Считать из файла до определенного символа - C++
Как считать из файла строку до определенного символа, например до второй кавычки: &quot;Stroka s 12&quot; Пробовал так, но как-то не так...

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа - C++
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать всё до | , т.е., в приведённом...

Чтение строки до определенного символа - C++
Всем привет, столкнулся с такой вот проблемой: int main() { char text; cin.getline(text, 50); if(strlen(text) == 0) ...

Копирование строки до определенного символа - C++
Дан текстовый файл с командами типа INSERT(&quot;Ключ&quot;, Значение) \ FIND (&quot;Ключ&quot;) \ REMOVE (&quot;ключ&quot;) Собственно, нужно достать Ключ и значение,...

Обрезать/скопировать string до определенного символа - C++
Есть ли библиотечная функция для данных типа string, которая урезает или копирует строку до определенного символа?Типа strtok для char'ов....

Считывание вещественных переменных до определенного символа - C++
Заранее спасибо за помощь, немного подзабыл как осуществить считывание каких-либо целых или вещественных переменных до,например, точки, а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
21.10.2013, 18:57 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
 
int main() {
    string input;
    string start = "start", finish = "finish";
    ifstream fin("input.txt");
    getline(fin, input); // Читаем весь файл целиком
    input.erase(0, input.find(start) + start.length() + 1); // Стираем все от начала до начального слова + само начальное слово
    input.erase(input.find(finish) - 1, input.length()); //стираем все после конечного слова с конечным словом
    cout << input << endl;
    system("pause");
    return 0;
}
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
22.10.2013, 13:23  [ТС] #3
GoldenChild, Спасибо, отлично расписал. Но ведь getch() считывает до символа '\n', а не такой функции, которая считывает целиком, ну и чтобы ее можно было легко вставить в твою прогу?
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
22.10.2013, 14:20 #4
Цитата Сообщение от Troll1 Посмотреть сообщение
GoldenChild, Спасибо, отлично расписал. Но ведь getch() считывает до символа '\n', а не такой функции, которая считывает целиком, ну и чтобы ее можно было легко вставить в твою прогу?
Скачать весь файл в переменную можно разными способами, например построчно читать и добавлять в нашу строку :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
 
int main() {
    string input = ""; 
    string temp = " "; 
    string start = "start", finish = "finish";
    ifstream fin("input.txt");
    while(!fin.eof() && temp != "") { // Пока не дойдем до конца файла
        getline(fin, temp); //Читаем строку до \n во временную строку
        input += temp; // Добавляем ее в исходной 
    } // После цикла мы получаем в строке string весь файл
    input.erase(0, input.find(start) + start.length() + 1); // Стираем все от начала до начального слова + само начальное слово
    input.erase(input.find(finish) - 1, input.length()); //стираем все после конечного слова с конечным словом
    cout << input << endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2013, 14:20
Привет! Вот еще темы с ответами:

Определение номера определенного символа в char - C++
Всем привет! Нужна помощь. Имеем такой массив символов: char alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',...

Действие при вводе определенного символа - C++
Как можно сделать чтобы при вводе &quot;а&quot; в консоли выполнялся определенный скрипт? К примеру вот код: #include &lt;cstdlib&gt; #include...

Как скопировать часть строки до определенного символа? - C++
Допустим, пользователь вводит с клавиатуры строку. Необходимо скопировать часть строки до какого-то определенного символа и поместить ее в...

Подсчитать в тексте количество вхождений определенного символа - C++
Составить программы для решения задач на языке С ++ Даны предложения. Подсчитать количество символа «*»


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.10.2013, 14:20
Ответ Создать тему
Опции темы

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