Loading...
DimovIvan avatar DimovIvan 16 Точки

"Основи на програмирането със C++"/Глава 10 Функции Задача: известия

https://cpp-book.softuni.bg/chapter-10-functions.html

Дава ми грешка: undefined reference to 'readAndProcessMassage()'

Защо?

void showSuccessMassage(string operations, string massage);
void showWarningMassage(string massage);
void showErrorMassage(string operations, string massage, string errorCode);
void readAndProcessMassage();
int main(){
int N;
cin >> N;
for (int i=0; i<N; i++){
    readAndProcessMassage();
}
return 0;
}
void showSuccessMassage(string operations, string massage){
    cout << "Successfully executed " << operations << "." << endl;
    string line = "Successfully executed " + operations + ".";
    int length = line.size();
    cout << string(length, '=') << endl;
    cout << massage << "." << endl;
}
void showWarningMassage(string massage){
    cout << "Warning: " << massage << "." << endl;
    string line = "Warning: " + massage + ".";
    int length = line.size();
    cout << string(length, '=') << endl;
    cout << massage << "." << endl;
}
void showErrorMassage(string operations, string massage, string errorCode){
    cout << "Error: Failed to execute " << operations << "." << endl;
    string line = "Error: Failed to execute " + operations + ".";
    int length = line.size();
    cout << string(length, '=') << endl;
    cout << "Reason: " << massage << "." << endl;
    cout << "Error code: " << errorCode << "." << endl;

}
void readAndProcessMassage(string massageType){
    cin >> massageType;
    if (massageType=="success"){
        string successOperation, successMassage;
        cin >> successOperation >> successMassage;
        showSuccessMassage(successOperation, successMassage);
    }
    else if (massageType == "warning"){
        string massageWarning;
        cin >> massageWarning;
        showWarningMassage(massageWarning);
    }
    else if (massageType=="error"){
        string errorOperation, errorMassage, errorCode;
        cin >> errorOperation >> errorMassage >> errorCode;
        showErrorMassage(errorOperation, errorMassage, errorCode);
    }

}
 

Тагове:
0
C++ Programming
MartinBG avatar MartinBG 4803 Точки

Проблемът е, че е декларирана и се извиква функцията readAndProcessMassage(), но има имплементация за функция с друга сигнатура readAndProcessMassage(string massageType).

Оправете сигнатурата на имплементираната функция (или сменете сигнатурата на декларираната и ѝ подавайте стринг при извикването ѝ).

 

1
DimovIvan avatar DimovIvan 16 Точки

Благодаря, за пореден път, за помощта. Мисля, че си оправих грешките и според мен програмата работи коректно, но judge не ми дава точки. Не мога да разбера защо.

#include<iostream>
#include<string>
using namespace std;
void showSuccessMassage(string operations, string massage);
void showWarningMassage(string massage);
void showErrorMassage(string operations, string massage, string errorCode);
void readAndProcessMassage(string massageType);
int main(){
int N;
cin >> N;
for (int i = 0; i <= N; i++){
    string massageType;
    getline(cin, massageType);
    readAndProcessMassage(massageType);
}
return 0;
}
void showSuccessMassage(string operations, string massage){
    cout << "Successfully executed " << operations << "." << endl;
    string line = "Successfully executed " + operations + ".";
    int length = line.size();
    cout << string(length, '=') << endl;
    cout << massage << "." << endl;
}
void showWarningMassage(string massage){
    cout << "Warning: " << massage << "." << endl;
    string line = "Warning: " + massage + ".";
    int length = line.size();
    cout << string(length, '=') << endl;

}
void showErrorMassage(string operations, string massage, string errorCode){
    cout << "Error: Failed to execute " << operations << "." << endl;
    string line = "Error: Failed to execute " + operations + ".";
    int length = line.size();
    cout << string(length, '=') << endl;
    cout << "Reason: " << massage << "." << endl;
    cout << "Error code: " << errorCode << "." << endl;

}
void readAndProcessMassage(string massageType){
    if (massageType == "success"){
        string successOperation, successMassage;
        getline(cin, successOperation);
        getline(cin, successMassage);
        showSuccessMassage(successOperation, successMassage);
    }
    else if (massageType == "warning"){
        string massageWarning;
        getline(cin, massageWarning);
        showWarningMassage(massageWarning);
    }
    else if (massageType == "error"){
        string errorOperation, errorMassage, errorCode;
        getline(cin, errorOperation);
        getline(cin, errorMassage);
        getline(cin, errorCode);
        showErrorMassage(errorOperation, errorMassage, errorCode);
    }

}
 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.