Рейтинг:
2
CPallini
Эй, ты используешь C++
- а ты разве нет?
std::string
это удобно, в таком раскладе:
#include <string>
#include <iostream>
using namespace std;
class message
{
string sender;
string recipient;
int time;
public:
message(string s, string r, int t): sender(s), recipient(r), time(t){}
void print();
};
void message::print()
{
cout << "the sender is " << sender << endl;
cout << "the recipent is " << recipient << endl;
cout << "the time is " << time << endl;
}
int main()
{
string s,r;
int t;
cout<<"enter senders name :";
cin>>s;
cout<<"enter recipient name :";
cin>>r;
cout<<"enter time :";
cin>>t;
message c(s,r,t);
c.print();
}
Member 12959299
Когда я запускаю вышеуказанную программу, она показывает следующие ошибки :-
#include & lt;string>
#include <iostream>
использование пространства имен std;
сообщение класса
{
string sender; / / ожидаемое имя типа, объявление отсутствует
строку получателя;/*имя типа, как ожидается , несколько декларации по строке декларации по строке, декларации отсутствует */
интервал времени;
общественный:
сообщение (строка s, строка r, int t): отправитель (ы), получатель( r), время (t){}/
* ) ожидаемый */
недействительными печати();
};
void message:: print ()/ / ' message :: print не является членом 'message'
{
cout << "отправитель есть" < & lt; отправитель< & lt; endl;
соиь <&ЛТ; "в recipent является" &ЛТ;&ЛТ; получатель &ЛТ;< епси;
соиь <&ЛТ; "время" &ЛТ;&ЛТ; времени в << епси;
}
тап_п()
{
строка s, r;
int t;
cout<< " введите имя отправителя :";
Кин&ГТ;&ГТ;С; // не определено символ "S"
cout<< " введите имя получателя :";
cin>> r; / / неопределенный символ 'r'
cout<< " введите время :";
cin>> t;
сообщение c (s, r, t);//) ожидается
c. print (); // 'print' не является членом 'message', функция sh. re. a va.
} / / c присваивается значение, которое никогда не используется.
обратите внимание, что я использую компилятор tsuppourbo c и, насколько мне известно, он не поддерживает string, но поддерживает массивы char, поэтому не могли бы вы рассказать мне, как его использовать таким образом. Я буду вам очень обязан.
Member 12959299
строка отлично работает на других компиляторах онлайн. Turbo c-динозавр, но мой старший сказал мне работать над turbo c. - Спасибо, сэр.
Member 12959299
Он работает с использованием strcpy. Полная правильная программа:-
#include< stdio.h>
#включить & lt;conio. h>
#include<iostream.h>
#include<stdlib.h>
#include & lt;string.h>
сообщение класса
{
частный:
char отправитель[10], получатель[10];
интервал времени;
общественный:
сообщение (char s[10], char r[10], int t)
{
strcpy(отправитель, s);
strcpy(получатель, r);
время=t;
}
недействительными печати();
};
сообщение пустое::печать()
{
cout<< "\ N отправитель: "< & lt;отправитель;
cout<< "\ nhe recipient is : "< & lt;recipient;
соиь<&ЛТ;"время ncurrent\является : "&ЛТ;&ЛТ;времени;
}
главный()
{
char s[10], r[10];
int t;
clrscr();
cout<< " \nenter имя отправителя :";
cin>> s;
cout<< " \nenter имя получателя :";
cin>> r;
cout<< " \nenter текущее время :";
cin>> t;
сообщение c(s, r, t);
гр.печать();
геч();
}
Member 12959299
спасибо за вашу помощь, ребята. отсортированный.
Рейтинг:
15
Richard MacCutchan
Вы не используете string
с помощью char
массивы. В этом случае вы не можете использовать такие выражения, как sender=s
переписывать с одного на другое. Вам нужно использовать strcpy
или аналогичная функция.
Member 12959299
не могли бы вы рассказать мне, как использовать массивы строк и символов для таких выражений, как
"отправитель=s". Я был бы благодарен.
Richard MacCutchan
Используйте строку.
Member 12959299
спасибо за ваше предложение, Мистер Маккатчен. Я использую компилятор turbo c++, и, насколько мне известно, он не принимает строки. Когда я попытался использовать строку, предложенную CPallini ниже, она показала ошибки, которые вы можете увидеть в моем ответе на комментарии CPallini. Так что я не знаю, как во всем этом разобраться.
Member 12959299
спасибо за ваше предложение, Мистер Маккатчен. Я использую компилятор turbo c++, и, насколько мне известно, он не принимает строки. Когда я попытался использовать строку, предложенную CPallini ниже, она показала ошибки, которые вы можете увидеть в моем ответе на комментарии CPallini. Так что я не знаю, как во всем этом разобраться.
Member 12959299
строка отлично работает на других компиляторах онлайн. Turbo c-динозавр, но мой старший сказал мне работать над turbo c. - Спасибо, сэр.
Richard MacCutchan
Вы должны поговорить со своим старшим и посмотреть, может ли он помочь вам понять, почему компилятор не принимает строковый тип. В качестве альтернативы вам нужно будет использовать strcpy
функция для копирования текста из одного массива в другой.