Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 2

неверний вивод структури с полем типу int в файл

17.11.2016, 15:28. Показов 665. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
неверно записивает в файл номер телефона,что делать? как решить?

#include<locale.h>
#include<stdio.h>
#include<conio.h>
#include<fstream>
#include <memory.h>
#include<iostream>
#include<string.h>
#include<windows.h>
#define r 13
#define STUD struct abonent
#define SSTUD sizeof(struct abonent)

using namespace std;

struct abonent
{
int nomer;
char lastname[15];
char firstname[15];
char pobatkovi[15];
int date[3];
};
abonent rt[r];

//Function;
void print(int i);
void fprint(int i,FILE *fo);
void fscan(int i,FILE *fo);
void print1(int i);
void SetColor(int text, int background)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}



int main(void){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
SetColor(10,16);
FILE *fo,*fm;
int i,j,start=0,end=0,basic=0,count=0,tmp,st art1=0,end1=0,basic1=0,k=0;
char str[15];
char str1[20];
setlocale(0,"");
char eoj;
for(eoj=0;!eoj
{
printf("1 – Створити БД 'New Base' і додати записи\n");
printf("2 – Відкрити існуючу БД\n");
printf("3 – Добавити записи(початок, кінець) \n");
printf("4 – Показати все\n");
printf("5 – Видалення\n");
printf("6 – Сортування номерiв за зростанням\n");
printf("7– Список номерiв абонентiв зареєстрованих цього року\n");
printf("8– Список прiзвищ абонентiв якi задано з клавiатури\n або починаються на вiдповiдну букву\n");
printf("9– Список номерiв, вiк яких старше 1992року\n");
printf("0 – Вихiд\n");
int choose;
printf("Введiть > ");
scanf("%d",&choose);
switch(choose) {
case 1:system("cls");
printf("Скiльки записiв ви бажаєте добавити?->");
scanf("%d",&basic);
for(i=0;i<basic;i++)
{
print(i);system("cls");
}
fo=fopen("Base.txt","w");
for(i=0;i<basic;i++){
fprint(i,fo);
}
fclose(fo);
count=basic+start+end;
break;
case 2:system("cls");
SetColor(7,16);
number1rintf("Скільки записів ви хочете використати?->");
scanf("%d",&basic);
fo=fopen("Base.txt","r");
for(i=0;i<basic;i++)
{ fscan(i,fo); }
fclose(fo);
fo=fopen("Finish.txt","w");
for(i=0;i<basic;i++)
{fprint(i,fo);}
fclose(fo);
if(basic>27){printf("\nПомилка! У базі даних тільки 27 записів.\n");
goto number1;}
else {printf("\nЗчитано %d записів\n",basic); count=basic+start+end;}
system("pause");
system("cls");
SetColor(10,16);
break;
case 3:system("cls");
SetColor(5,16);
for(;
{
printf("\n1.Початок \n2.Кiнець\n0.Exit\n");
int c;
scanf("%d",&c);
switch (c)
{
case 1:
printf("Скiльки записiв ви бажаєте добавити?->");
scanf("%d",&start1);

fo=fopen("Add.txt","w");
for(i=0;i<start1;i++){
print(i);
fprint(i,fo);}
fclose(fo);
fo=fopen("Finish.txt","r");
for(i=0;i<basic+start+end;i++)
{
fscan(i,fo);
}
fclose(fo);
fo=fopen("Add.txt","a");
for(i=0;i<basic+start+end;i++){
fprint(i,fo);
}
fclose(fo);
start=start+start1;
count=basic+start+end;
remove("Finish.txt"); rename("Add.txt","Finish.txt");
system("cls");
break;
case 2:
printf("Скiльки записiв ви бажаєте добавити?->");
scanf("%d",&end1);
end=end+end1;
for(int i=0;i<end1;i++)
{
print(i);
}
fo=fopen("Finish.txt","a");
for(i=0;i<end1;i++){
fprint(i,fo);
}
fclose(fo);
count=basic+start+end;
break;
defaultrintf("!ooooooooog!");
break;
}
if(c==0) break;
}system("cls");
SetColor(10,16);
break;
case 4:
fo=fopen("Finish.txt","r");
SetColor(7,15);
for(i=0;i<count;i++)
{
fscan(i,fo);
}
fclose(fo);
for(i=0;i<count;i++)
{
print1(i);
}
fo=fopen("Rezultat.txt","a");
fprintf(fo,"\nВсі записи\n");
for(i=0;i<count;i++)
{
fprint(i,fo);
}
fclose(fo);
system("pause");
system("cls");
SetColor(10,16);
break;
case 5:system("cls");
SetColor(3,16);
printf("Введiть прiзвище потрiбної людини: "); scanf("%s",&str);
k=0;
fo=fopen("Finish.txt","r");
for(i=0;i<count;i++)
{
fscan(i,fo);
}
fclose(fo);
fo=fopen("Delete.txt","w");
for(i=0;i<count;i++){
if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
print1(i);
fprint(i,fo);
k++;
}
}
fclose(fo);
if(count==k){printf("Запис не знайдено!!!");}
else{printf("Deleted!!!"); count=count-1;}
remove("Finish.txt"); rename("Delete.txt","Finish.txt");
SetColor(10,16);
break;
case 6:system("cls");
SetColor(5,16);
fo=fopen("Finish.txt","r");
for(i=0;i<count;i++)
{
fscanf(fo,"%d ",&rt[i].nomer);
fscanf(fo,"%s ",rt[i].lastname);
fscanf(fo,"%s ",rt[i].firstname);
fscanf(fo,"%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
fscanf(fo,"%d ",&(rt[i].date[j]));
}
}

for(tmp=0;tmp<count-1;tmp++)
for(i=0;i<count-1-tmp;i++)
{
if(rt[i].nomer>rt[i+1].nomer)
{
rt[count]=rt[i];
rt[i]=rt[i+1];
rt[i+1]=rt[count];
}
}
for(i=0;i<count;i++)
{
printf("%d ",rt[i].nomer);
printf("%s ",rt[i].lastname);
printf("%s ",rt[i].firstname);
printf("%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
printf("%d ",rt[i].date[j]);
}
printf("\n");
}
fclose(fo);
system("pause");
system("cls");
SetColor(10,16);
break;
case 7:system("cls");
fo=fopen("Finish.txt","r");
for(i=0;i<count;i++)
{
fscanf(fo,"%d ",&rt[i].nomer);
fscanf(fo,"%s ",rt[i].lastname);
fscanf(fo,"%s ",rt[i].firstname);
fscanf(fo,"%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
fscanf(fo,"%d ",&(rt[i].date[j]));
}
}
for(i=0;i<count;i++)
if((rt[i].date[2]==2016)){
printf("%d ",rt[i].nomer);
printf("%s ",rt[i].lastname);
printf("%s ",rt[i].firstname);
printf("%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
printf("%d ",rt[i].date[j]);
}
}
fclose(fo);
SetColor(10,16);
system("pause");
system("cls");
break;
case 8:system("cls");
SetColor(3,16);
printf("Введіть потрібне прізвище або iм'я: ");
scanf("%s",&str1);
fo=fopen("Finish.txt","r");
for(i=0;i<count;i++)
{
fscanf(fo,"%d ",&rt[i].nomer);
fscanf(fo,"%s ",rt[i].lastname);
fscanf(fo,"%s ",rt[i].firstname);
fscanf(fo,"%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
fscanf(fo,"%d ",&(rt[i].date[j]));
}

if((_stricmp(str1,rt[i].firstname)==0)){
printf("%d ",rt[i].nomer);
printf("%s ",rt[i].lastname);
printf("%s ",rt[i].firstname);
printf("%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
printf("%d ",rt[i].date[j]);

}printf("\n");
}
}
fclose(fo);
system("pause");
system("cls");
SetColor(10,16);
break;
case 9:system("cls");
SetColor(11,16);
fo=fopen("Finish.txt","r");
for(i=0;i<count;i++)
{
fscanf(fo,"%d ",&rt[i].nomer);
fscanf(fo,"%s ",rt[i].lastname);
fscanf(fo,"%s ",rt[i].firstname);
fscanf(fo,"%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
fscanf(fo,"%d ",&(rt[i].date[j]));
}
if(rt[i].date[2]<1992){
printf("%d ",rt[i].nomer);
printf("%s ",rt[i].lastname);
printf("%s ",rt[i].firstname);
printf("%s ",rt[i].pobatkovi);
for(j=0;j<3;j++){
printf("%d ",rt[i].date[j]);
} printf("\n");
}
}
fclose(fo);
system("pause");
system("cls");
SetColor(10,16);
break;
default: printf("\nПомилка!! Зробіть правильний вибір(1-9)\n");
break;
}
if (choose) {
getch();}
if(choose==0)break;
}
return 0; }

void print(int i)
{
printf("Номер телефону: "); scanf("%d",&rt[i].nomer);
printf("Прiзвище: "); scanf("%s",rt[i].lastname);
printf("Iм`я: ");scanf("%s",rt[i].firstname);
printf("По-батьковi: ");scanf("%s",rt[i].pobatkovi);
doorrintf("Введiть дату народження(ДД ММ РРРР): ");
for(int j=0;j<3;j++){
scanf("%d",&(rt[i].date[j]));}
if((rt[i].date[0]>31)||(rt[i].date[0]<1)||(rt[i].date[1]>12)||(rt[i].date[1]<1)||(rt[i].date[2]>2016)||(rt[i].date[2]<1945)){
printf("Некоректно введена дата!!!\n");
goto door;}
}

void fprint(int i,FILE *fo)
{
fprintf(fo,"%d ",rt[i].nomer);
fprintf(fo,"%s ",rt[i].lastname);
fprintf(fo,"%s ",rt[i].firstname);
fprintf(fo,"%s ",rt[i].pobatkovi);
for(int j=0;j<3;j++){
fprintf(fo,"%d ",rt[i].date[j]);}

}

void fscan(int i,FILE *fo)
{
fscanf(fo,"%d ",&rt[i].nomer);
fscanf(fo,"%s ",rt[i].lastname);
fscanf(fo,"%s ",rt[i].firstname);
fscanf(fo,"%s ",rt[i].pobatkovi);
for(int j=0;j<3;j++){
fscanf(fo,"%d ",&(rt[i].date[j]));}

}

void print1(int i)
{
printf("|%13d |",rt[i].nomer);
printf("|%10s |",rt[i].lastname);
printf("%10s |",rt[i].firstname);
printf("%10s |",rt[i].pobatkovi);
for(int j=0;j<3;j++){
printf("%1d ",rt[i].date[j]);}
printf("\n");

}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2016, 15:28
Ответы с готовыми решениями:

Проверка соответствия типу int
Привет всем Вот кусок кода int kolvoChel=0; int m=0; int w=0; int k=0; cout &lt;&lt; &quot;Vvedite kol-vo mugchin v semie:...

Приведение пользовательского типа к типу int
Написан класс DateTime и перегружены его операторы, в частности ввод/вывод в консоль и в файл. Код: #include &lt;iostream&gt; #include...

Конвертация System::String^ к типу Int
Здравствуйте, уважаемые прграммисты! Помогите, пожалуйста, с вопросом: Как сконвертировать System::String^ к типу Int? Я пробовал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2016, 15:28
Помогаю со студенческими работами здесь

Преобразовать тип char к типу int
Можно ли как-то преобразовать тип char к типу int? Существуют ли какие-либо функции для этого? Нужно в переменную типа int записать...

Как адрес IP перевели к типу int 32
Добрый день. Прошу помощи во следующему вопросу: Изучаю программу по передачи данных клиент-сервис. Для настройки пересылки в...

Ошибки присваивания типа структуры типу int
день добрый. вот такой варнинг выдает мне gcc, если функция main() вынесена в отдельный файл, если майн вмечте с функциями, то ни...

Элемент строкового массива привести к типу Int
Подскажите вот у меня есть массив типа string название array в 0 индексе находится цифра 99 как мне ее присвоить переменной типа int ...

Анализ вводимых данных на соответствие типу int
Доброго времени суток. Упёрся в стену.... Помогите реализовать проверку с консоли вводимых данных. Нужно проверить что в объект...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru