Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Ошибка в коде с функцией strcmp - C++

07.01.2016, 21:07. Просмотров 272. Ответов 6
Метки c++ (Все метки)

строка с функцией strcmp не работает,пробовал делать элементы структуры char,но все равно говорит что не может преобразовать из char в const char*,как исправить?

ошибка:error cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'int strcmp'(const char*, const char*)

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
struct national
{
    string facult;
    string spec;
    string year;
    string name;
};
 
 
int main ()
{
    int c=0;
   setlocale( 0,"" );
   national nat;
   char a;
    ofstream fout("text.txt");
   do
   {
   cout<<"vv facult"<<endl;
   cin>>nat.facult;
   cout<<"vv spec"<<endl;;
   cin>>nat.spec;
   cout<<"vv year"<<endl;;
   cin>>nat.year;
   cout<<"vv name"<<endl;;
   cin>>nat.name;
   fout<<nat.facult<< " " <<nat.spec<< " " <<nat.year<< " " <<nat.name<<endl;
 
   cout<<"продолжит? y-да n-нет"<<endl;
   cin>>a;
 
   } while(a=='y'||a=='Y');
 
    fout.close();
 
 
     ifstream fin("text.txt");
    if (fin)
    {
        while (fin >> nat.facult >> nat.spec >> nat.year >> nat.name)
        {
            if(strcmp(nat.facult,"ficit")==0)
            {
                c++;
            }
            cout << nat.facult<<endl;
        }
        fin.close();
 
    }
    else
        cout << "Error!" << endl;
 
     cout.setf(ios::showpos);
    cout<<c;
 
        cin.get();
        cin.get();
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2016, 21:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в коде с функцией strcmp (C++):

Непонятка с функцией(ошибка в коде) - C++
Необходимо вычислить значения нескольких сумм с помощью функций в следующей функции: y=a+4*sum J=2, N+1(3*J^2+J+2)/4+3*sum J=1,N(2*J+3);J...

Сравнение двух строк функцией strcmp - C++
Напишите программу, которая использует функцию strcmp для сравнения двух строк, вводимых пользователем. Программа должна определить: первая...

Ошибка: strcmp - индентификатор не найден - C++
Почему-то не хочет работать функция strcmp. Библиотеки все подключены, а &quot;идентификатор не найден&quot;

Проверка корректности введенного пароля - Ошибка strcmp - C++
Решил воспользоваться strcmp, чтобы проверить правильность введенного пароля, но вместо этого код не хочет компилироваться. В чем проблема,...

Ошибка с функцией - C++
#include &lt;iostream&gt; using namespace std; int main() { int sum,n; cin&gt;&gt;n; cout&lt;&lt;fun(sum); }

Ошибка с функцией - C++
Выполняю пример из книги, раздел про функции. Одно из условий здачи написать функцию для ввода массива. У меня подчеркивет в main() функцию...

6
Даценд
Модератор
Эксперт .NET
3696 / 3567 / 1822
Регистрация: 20.04.2015
Сообщений: 6,543
07.01.2016, 22:04 #2
barcheta,
а что мешает так сделать:
C++
1
if(nat.facult=="ficit")
0
barcheta
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 9
07.01.2016, 22:10  [ТС] #3
так конечно можно,просто в другой программе с элементами массива с типами данных char,и сравнение тоже через strcmp как в это программе,только там работает а тут нет,вот и пытаюсь разобраться где ошибка
0
Людвиг Бодмер
353 / 352 / 137
Регистрация: 29.03.2013
Сообщений: 866
Завершенные тесты: 4
07.01.2016, 22:13 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
barcheta, тогда так задай:
C++
1
2
3
struct national
{
    char facult[256];
1
barcheta
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 9
07.01.2016, 22:21  [ТС] #5
Спасибо,проблема действительно оказалась в этом,жаль со string не работает
0
Даценд
Модератор
Эксперт .NET
3696 / 3567 / 1822
Регистрация: 20.04.2015
Сообщений: 6,543
07.01.2016, 22:22 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от barcheta Посмотреть сообщение
пытаюсь разобраться где ошибка
Разные типы. Можно так string представить как const char*:
C++
1
if(strcmp(nat.facult.c_str(),"ficit")==0)
2
barcheta
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 9
07.01.2016, 22:31  [ТС] #7
так даже лучше,спасибо,буду разбираться с c_str()
0
07.01.2016, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2016, 22:31
Привет! Вот еще темы с ответами:

Ошибка с функцией - C++
Дан текст. Найти сумму имеющихся в нем чисел. Функция отдельно работает(в качестве отдельной программы). Сама программа без функции тоже....

что за ошибка с функцией POW - C++
s=s+(pow(x,4*n+1)/4*n+1); что не так Добавлено через 1 минуту все ясно,надо было цифры как double,или float объявлять

Ошибка с библиотечной функцией pow - C++
Я понимаю что все это можно сделать намного проще, но сейчас волнует почему показывает ошибки в pow, что не так? int main() { int...

Ошибка с функцией std::uninitialized_copy - C++
Ребята у меня есть большой код, в котором используется класс std::Allocator&lt;T&gt;. Всё вроде хорошо, но выдает: error C4996:...


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

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

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