#c #undefined
#c #не определено
Вопрос:
Я новичок в c , и мой учебник не очень полезен. У меня есть несколько ошибок в моем коде. Где мне сообщают, что идентификатор для customerAccount не определен, и у меня несовместимое объявление с моим поиском int до и после моего main. Я опубликую некоторый код ниже, поскольку я пытался разобраться в этом некоторое время, и я в растерянности.
#include<iostream>
#include<string>
using namespace std;
struct {
string Name;
string Address;
string City_State_Zip;
double phoneNumber;
double actBalance;
string Payment;
};
//This is where the errors start, saying customer account is undefined
void Display(customerAccount ca);
//declaration is incompatible with int search
int Search(customerAccount, string);
int main() {
customerAccount customers[10];
string SName;
int choice, i = 0, size = 0;
do {
cout << "****Menu****" << endl;
cout << "1. Enter Customer Information" << endl;
cout << "2. Change Customer Information" << endl;
cout << "3. Search For Customer" << endl;
cout << "4. Display Customer Data" << endl;
cout << "5. Exit" << endl;
cout << "Please enter a choice 1,2,3,4 or 5";
cin >> choice;
switch (choice) {
case 1:
cout << "Enter customer name: ";
cin >> customers[i].Name;
cout << "Enter customer address: ";
cin >> customers[i].Address;
cout << "Enter city state and zip: ";
cin >> customers[i].City_State_Zip;
cout << "Enter phone number: ";
cin >> customers[i].phoneNumber;
cout << "Enter account balance: ";
cin >> customers[i].actBalance;
if (customers[i].actBalance < 0) {
cout << "Account balance cannot be negative. Please re-enter: "
<< endl;
cin >> customers[i].actBalance;
}
cout << "Enter last payment: ";
cin >> customers[i].Payment;
i ;
break;
case 2: int ele;
cout << "Enter customer information to modify: " << endl;
cout << "Enter customer name: ";
cin >> customers[ele - 1].Name;
cout << "Enter customer address: ";
cin >> customers[ele - 1].Address;
cout << "Enter city state and zip";
cin >> customers[ele - 1].City_State_Zip;
cout << "Enter phone number: ";
cin >> customers[ele - 1].phoneNumber;
cout << "Enter account balance: ";
cin >> customers[ele - 1].actBalance;
if (customers[ele - 1].actBalance < 0) {
cout << "Account balance cannot be negative. Please re-enter: "
<< endl;
cin >> customers[i].actBalance;
}
cout << "Enter date of payment: ";
cin >> customers[ele - 1].Payment;
break;
case 3: cout << "Enter customer name to search: ";
cin >> SName;
for (size = 0; size < i; size ) {
int check;
check = Search (customers[size], SName);
if (check == 1)
Display(customers[size]);
}
break;
case 4:
for (size = 0; size < i; size )
Display(customers[size]);
break;
case 5: exit(0);
break;
}
} while (choice != 5);
system("pause");
return 0;
}
void Display(customerAccount ca) {
cout << " Customer name:";
cout << ca.Name << endl;
cout << " Address:";
cout << ca.Address << endl;
cout << " city state and zip:";
cout << ca.City_State_Zip << endl;
cout << " Phone number:";
cout << ca.phoneNumber << endl;
cout << " Account balance:";
cout << ca.actBalance << endl;
cout << " Date of payment:";
cout << ca.Payment << endl;
}
//declaration is incompatible with int search
int Search(customerAccount ca, string str) {
if (str.compare(ca.Name) == 0)
return 1;
else
return 0;
}
Комментарии:
1. Вы никогда не давали своей структуре имя, компилятор не знает, что это такое, черт возьми
customerAccount
.2. Я исправил эту часть своего кода. Теперь, когда я запускаю программу, она прерывается после ввода адреса. Я не уверен, что происходит, Visual Studio не показывает мне никаких ошибок
3. Вы забыли прочитать
ele
от пользователя. Итак, у вас есть неинициализированная переменная, и начните вычислять с ней указатель.4. Пожалуйста, не меняйте свой вопрос, исправляя его комментариями / ответами. Это меняет вопрос. Если после получения ответа на один вопрос у вас возникла другая проблема, задайте новый вопрос по этому поводу. Однако, если комментарии к удаленным ответам верны (что проблема связана с tydefs / structs) и фактическое решение отличается, и измененный вопрос лучше объясняет это — тогда игнорируйте этот комментарий. (И дайте мне знать, если хотите.)
Ответ №1:
case 2: int ele;
В этой строке у вас неинициализированная переменная, которая вызывает вашу ошибку.