Не могу ввести в файл ФИО и название товара. Помогите найти ошибку
void add() {
int f_c = 0;
int max_c = 1000;
int size = sizeof(KOSMETIKA);
const char * filename = "KOSMETIKA";
FILE * file;
KOSMETIKA temp;
Russian();
file = fopen(filename, "a + b");
if (file == NULL) {
cout << "Ошибка. Нет доступа к файлу!" << endl << endl;
Sleep(800);
exit(1);
}
rewind(file);
int m(0);
while (fread(&temp, size, 1, file) == 1) {
if (temp.n_user > m) m = temp.n_user;
}
fseek(file, 0, SEEK_END);
f_c = ftell(file) / size;
system("CLS");
int c(0);
char check[256];
do {
cin.clear();
cin.sync();
system("cls");
SetColor(15, Black);
c = 0;
cout << " Какое количество вы хотите добавить?" << endl;
cout << " Ваш ответ: ";
gets_s(check); check[30] = '\0';
for (int i = 0; i < strlen(check); i++) {
if (!(check[i] >= '1' && check[i] <= '9')) {
check[1] = '\0';
check[0] = '0';
}
}
for (int i = 0; i < strlen(check); i++) {
if (check[i] == '-') {
check[1] = '\0';
check[0] = '0';
c = 0;
}
}
c = atoi(check);
if (c <= 0) {
cout << " Некорректный ввод! Повторите!";
Sleep(800);
c = 0;
}
} while (c == 0);
if (c < 0 && c + f_c >= max_c) {
system("CLS");
cout << "Файл заполнен!" << endl << "Удалите записи для добавления!" << endl << endl;
fclose(file);
menu();
}
for (int i = 0; i < c; i++) {
system("CLS");
cin.clear();
cin.sync();
cout << "Запись номер " << f_c + i + 1 << endl;
Sleep(500);
system("CLS");
int space(0);
char fio[256];
do {
space = 0;
cout << " Введите ФИО: ";
gets_s(fio); fio[30] = '\0';
for (int i = 0; i < strlen(fio); i++) {
if (fio[i] == ' ') {
space++;
}
}
if (space < 2 || space > 2) {
cout << " Некорректный ввод!";
Sleep(1000);
space = 0;
}
else if (space == strlen(fio)) {
cout << " Вы ничего не ввели!";
Sleep(1000);
space = 0;
}
for (int i = 0; i < strlen(fio); i++) {
if (fio[i] >= '0' && fio[i] <= '9') {
cout << " В ФИО не могут присутствовать цифры!";
Sleep(1000);
space = 0;
break;
}
}
} while (space == 0);
cin.clear();
cin.sync();
char modfio[256]; modfio[0] = '\0';
int b(0);
int mas[2];
for (int i = 0; i < strlen(fio); i++) {
if (fio[i] == ' ') {
mas[b] = i + 1;
b++;
}
}
for (int i = 0; i < strlen(fio); i++)
{
if (fio[i] >= 'A' && fio[i] <= 'Z')
{
fio[i] += 32;
}
else if (fio[i] >= 'А' && fio[i] <= 'Я') {
fio[i] += 32;
}
else if (fio[i] == 'Ё') {
fio[i] = 'ё';
}
}
if (fio[0] >= 'a' && fio[0] <= 'z')
{
fio[0] -= 32;
}
else if (fio[0] >= 'а' && fio[0] <= 'я') {
fio[0] -= 32;
}
else if (fio[0] == 'ё') {
fio[0] = 'Ё';
}
for (int i = 0; i < strlen(fio); i++) {
for (int j = 0; j < b; j++) {
if (mas[j] == i) {
if (fio[i] >= 'a' && fio[i] <= 'z')
{
fio[i] -= 32;
}
else if (fio[i] >= 'а' && fio[i] <= 'я') {
fio[i] -= 32;
}
else if (fio[i] == 'ё') {
fio[i] = 'Ё';
}
}
}
}
strncat(modfio, fio, mas[0] - 1);
modfio[strlen(modfio) + 1] = '\0';
modfio[strlen(modfio)] = ' ';
strncat(modfio, &fio[mas[0]], 1);
modfio[strlen(modfio) + 1] = '\0';
modfio[strlen(modfio)] = '.';
modfio[strlen(modfio) + 1] = '\0';
strncat(modfio, &fio[mas[1]], 1);
modfio[strlen(modfio) + 1] = '\0';
modfio[strlen(modfio)] = '.';
strcpy(temp.name, modfio);
int r(0), flag(0);
rewind(file);
while (fread(&temp, size, 1, file) == 1) {
if (strcmp(temp.name, modfio) == 0) {
r = temp.n_user;
flag = 1;
break;
}
else r = m + 1;
}
fseek(file, 0, SEEK_END);
temp.n_user = r;
if (flag == 0) m++;
char a[255];
b = 0;
cout << endl << " Выберите категорию косметического изделия ";
cout << endl << " 1.Декоративная";
cout << endl << " 2.Уход за волосами";
cout << endl << " 3.Уход за лицом";
cout << endl << " Ваш выбор: ";
do {
cin >> a;
b = atoi(a);
} while (!(b > 0 && b < 4));
switch (b) {
case 1: {
const char * kat = "Декор.";
strcpy(temp.kategorija, kat);
temp.nkategorija = 1;
break;
}
case 2: {
const char * kat = "У/В";
strcpy(temp.kategorija, kat);
temp.nkategorija = 2;
break;
}
case 3: {
const char * kat = "У/Л";
strcpy(temp.kategorija, kat);
temp.nkategorija = 3;
break;
}
}
if (b == 1) {
char a1[255];
int b1;
cout << endl << " Выберите тип косметического изделия";
cout << endl << " 1.Туш";
cout << endl << " 2.Помада";
cout << endl << " 3.Пудра";
cout << endl << " Ваш выбор: ";
do {
cin >> a1;
b1 = atoi(a1);
switch (b1) {
case 1: {
const char * tip = "Туш";
strcpy(temp.tip, tip);
temp.ntip = 1;
break;
}
case 2: {
const char * tip = "Помада";
strcpy(temp.tip, tip);
temp.ntip = 2;
break;
}
case 3: {
const char * tip = "Пудра";
strcpy(temp.tip, tip);
temp.ntip = 3;
break;
}
}
} while (!(b1 > 0 && b1 < 4));
}
if (b == 2) {
char a1[255];
int b1;
cout << endl << " Выберите тип изделия ухода за волосами";
cout << endl << " 1.Шампунь";
cout << endl << " 2.Маска";
cout << endl << " 3.Кондиционер";
cout << endl << " Ваш выбор: ";
do {
cin >> a1;
b1 = atoi(a1);
switch (b1) {
case 1: {
const char * tip = "Шампунь";
strcpy(temp.tip, tip);
temp.ntip = 4;
break;
}
case 2: {
const char * tip = "Маска";
strcpy(temp.tip, tip);
temp.ntip = 5;
break;
}
case 3: {
const char * tip = "Кондиц.";
strcpy(temp.tip, tip);
temp.ntip = 6;
break;
}
}
} while (!(b1 > 0 && b1 < 4));
}
if (b == 3) {
char a1[255];
int b1;
cout << endl << " Выберите тип изделия ухода за лицом";
cout << endl << " 1.Крем";
cout << endl << " 2.Маска";
cout << endl << " 3.Скраб";
cout << endl << " Ваш выбор: ";
do {
cin >> a1;
b1 = atoi(a1);
switch (b1) {
case 1: {
const char * tip = "Крем";
strcpy(temp.tip, tip);
temp.ntip = 7;
break;
}
case 2: {
const char * tip = "Маска";
strcpy(temp.tip, tip);
temp.ntip = 8;
break;
}
case 3: {
const char * tip = "Скраб";
strcpy(temp.tip, tip);
temp.ntip = 9;
break;
}
}
} while (!(b1 > 0 && b1 < 4));
}
cin.clear();
cin.sync();
cout << endl << " Введите название товара: ";
gets_s(temp.nazva);
temp.nazva[20] = '\0';
cout << endl << " Введите кол-во товара: ";
cin >> temp.kol_vo;
cout << endl << " Введите цену за единицу товара: ";
cin >> temp.one_price;
temp.final_price = temp.one_price * temp.kol_vo;
fwrite(&temp, size, 1, file);
}
fclose(file);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Подскажите пожалуйста как создать проект на angular2Раньше я делал так:
Сей код должен был существенно облегчить сайт http запросами, так как по желанию клиента в каждом товаре должно крутится до 10 фотокРешил сделать...
Этот код откроет страничку в новом окне :