Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Verzhina
1 / 1 / 1
Регистрация: 09.04.2012
Сообщений: 90
#1

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

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

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

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

Не получается сравнить переменную типа стринг
Скинул весь код, раздел программы где код не работает пометил комментарием....

Как сравнить переменную типа char
нужно найти элементы типа char различные от нуля, программу я написал, а вот не...

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

Как сравнить две строки типа string?
C типом char все просто. Поиск по Фамилии и имени. char...

Нужно сравнить две переменные типа string
Мне нужно сравнить 2 переменные типа string,нашел эту функцию,но почему то у...

7
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.05.2012, 06:09 #2
Простой вариант - посимвольно.
Сложный вариант - по размеру и контрольной сумме.
0
-=ЮрА=-
Заблокирован
Автор 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
0
Миниатюры
Сравнить переменную типа string с содержимым файла  
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
24.05.2012, 13:30 #4
-=ЮрА=-, 1) Для ошибок есть поток cerr.
2) А смысл читать из txt файла через read посимвольно?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.05.2012, 13:44 #5
А ещё лучше сделать отображение файла в память и использовать strcmp.
0
-=ЮрА=-
Заблокирован
Автор FAQ
24.05.2012, 14:39 #6

Не по теме:

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



Добавлено через 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;
}
1
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
24.05.2012, 14:52 #7
-=ЮрА=-, пасиба. Но как-то слишком уж многословно.

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

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

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

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

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

Вставить один символ в переменную типа string
Есть такая переменная string str = &quot;Hllo world!&quot;; Как мне вставить букву e,...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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