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

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

Войти
Регистрация
Восстановить пароль
 
Verzhina
1 / 1 / 0
Регистрация: 09.04.2012
Сообщений: 90
#1

Сравнить переменную типа string с содержимым файла - C++

24.05.2012, 03:15. Просмотров 873. Ответов 7
Метки нет (Все метки)

а как можно сравнить переменную типа string с содержимым файла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2012, 03:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнить переменную типа string с содержимым файла (C++):

Чтение из файла в переменную типа string - C++
Добрый вечер! :) Вот делаю программу в одном из элементов которой нужно прочесть из файла в переменную типа string имя продукта так вот я...

Не получается сравнить переменную типа стринг - C++
Скинул весь код, раздел программы где код не работает пометил комментарием. #include <iostream> using namespace std; int main...

Как сравнить переменную типа char - C++
нужно найти элементы типа char различные от нуля, программу я написал, а вот не получается сравнивать #include <iostream> #include...

Как сравнить элемент вектора и переменную типа wchar_t? - C++
Имеется vector<wstring> a; и переменная wchar_t *sss; также создан итератор вектора. Вопрос: как сравнить элемент вектора и переменную...

Нужно сравнить две переменные типа string - C++
Мне нужно сравнить 2 переменные типа string,нашел эту функцию,но почему то у меня выдает ошибку Error:class "std...

Как сравнить две строки типа string? - C++
C типом char все просто. Поиск по Фамилии и имени. char name,name1,address, dom; int h=0; cout<<"Введите Фамилию "; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.05.2012, 06:09 #2
Простой вариант - посимвольно.
Сложный вариант - по размеру и контрольной сумме.
-=ЮрА=-
Заблокирован
Автор FAQ
24.05.2012, 13:21 #3
Цитата Сообщение от Verzhina Посмотреть сообщение
а как можно сравнить переменную типа string с содержимым файла?
Ну вот хотя бы и так
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
string getFileText(ifstream &ifs);//ÔóГ*êöèÿ ñ÷èòûâГ*ГҐГІ ГІГҐГЄГ±ГІ ГЁГ§ ïîòîêГ* ifs
 
int main()
{
    string s = "text for compare";
    string text;
    cout<<"String for comparision\n"<<s<<endl;
    ifstream ifs("data.txt");
    if(!ifs.is_open())
        cout<<"Error open data.txt\n";
    else
    {
        text = getFileText(ifs);
        ifs.close();
        cout<<"Text in file : "<<text<<endl;
        if(text.find(s,0) != string::npos)
            cout<<"File contain string\n";
        else
            cout<<"File not contain string\n";
    }
    system("pause");
    return 0;
}
 
string getFileText(ifstream &ifs)
{
    string text;
    char chr = '\0';
    //ÏîñèìâîëüГ*îå Г·ГІГҐГ*ГЁГҐ ГґГ*éëГ*
    while(!ifs.eof())
    {
        ifs.read((char *)&chr,1);
        if(!ifs.eof())
            text += chr;
    }
    return text;
}
data.txt
dkgdf
fhdhj 1h
g2j1fh
m jn,.k
text for compare
hgf
tjkkk
Миниатюры
Сравнить переменную типа string с содержимым файла  
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
24.05.2012, 13:30 #4
-=ЮрА=-, 1) Для ошибок есть поток cerr.
2) А смысл читать из txt файла через read посимвольно?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.05.2012, 13:44 #5
А ещё лучше сделать отображение файла в память и использовать strcmp.
-=ЮрА=-
Заблокирован
Автор FAQ
24.05.2012, 14:39 #6

Не по теме:

скучно как-то
Давайте поругамся что ли



Добавлено через 8 минут
ForEveR, твой спецзаказ
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
 
string getFileText(ifstream &ifs);//ÔóГ*êöèÿ ñ÷èòûâГ*ГҐГІ ГІГҐГЄГ±ГІ ГЁГ§ ïîòîêГ* ifs
 
int main()
{
    string s = "text for compare";
    string text;
    cout<<"String for comparision\n"<<s<<endl;
    ifstream ifs("data.txt");
    if(!ifs.is_open())
        cerr<<"Error open data.txt\n";
    else
    {
        text = getFileText(ifs);
        ifs.close();
        cout<<"Text in file : "<<text<<endl;
        if(text.find(s,0) != string::npos)
            cout<<"File contain string\n";
        else
            cout<<"File not contain string\n";
    }
    system("pause");
    return 0;
}
 
string getFileText(ifstream &ifs)
{
    string text;
    string line;
    //ÏîñèìâîëüГ*îå Г·ГІГҐГ*ГЁГҐ ГґГ*éëГ*
    while(!ifs.eof())
    {
        getline(ifs,line);
        text += line;
        if(!ifs.eof())
            text += "\n";
    }
    return text;
}
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
24.05.2012, 14:52 #7
-=ЮрА=-, пасиба. Но как-то слишком уж многословно.

Кстати про посимвольно.

C++
1
std::string s((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
-=ЮрА=-
Заблокирован
Автор FAQ
24.05.2012, 15:18 #8
Цитата Сообщение от ForEveR Посмотреть сообщение
-=ЮрА=-, пасиба.
- не стесняйся обращайся если что

Цитата Сообщение от ForEveR Посмотреть сообщение
std::string s((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
- чесн слово вот не использую таких колбас
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2012, 15:18
Привет! Вот еще темы с ответами:

Как сравнить два элемента массива типа string? - C++
Задание. Вычислить какая компания чаще всего участвовала в роли истца. У меня есть массив в котором хранятся названия компаний ...

Переменную типа string вывести в printf? - C++
как в переменную типа string вывести в printf? #include &lt;stdio.h&gt; // для принтф #include &lt;stdlib.h&gt; #include &lt;string&gt; using...

Как разбить переменную типа String на 2 части? - C++
есть переменная типа String, например String slovo= &quot;кибер форум&quot; как ее разбить на 2 чести ( до пробела и после) так, чтоб String...

Вставить один символ в переменную типа string - C++
Есть такая переменная string str = &quot;Hllo world!&quot;; Как мне вставить букву e, на первую позицию ? между H и l ?


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

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

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