Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа со списками (структуры)

38K
30 октября 2008 года
ДмитрийизОдессы
9 / / 26.07.2008
1) Как упорядочить текст. Если необходимо соответствие заголовка со строками. Например:

Имя возраст телефон адрес
Петя 34 565-54-89 Украина, Одесса
Настя 19 7847584 Беларусь, Брест
.....
Чтобы было все красиво и ровно. Пытался добавить символ пробела к каждой недостоюще строке, например char name [30], с помощью функции size_length=strlen(name) находил реальный размер строки, затем вычислял разность меджу реальным и номинальным. Но как этот результат реализовать в виде необходимого количества пробелов не знаю(


2)Редактирование/изменение данных. Например я ввел 5 человек с 4 поля (см. выше). Необходимо изменить данные. Тоже пытался Но выводит мусор

Код:
void Changediagnosis (Account *&list,int &row)//изменение диагноза
{  
    char name_search[50];
    Account *newdiagnosis=new Account[50];
    int h=0,i;
    Rus("Введите ФИО больного для поиска:");
    cin>>name_search;
    for(i=0;i<row;i++)
    {  
        if(strcmp(name_search,list.name)==0)
        {
            h++;break;
        }
    }
    if(h>0)
    {
        Rus("ФИО больного найдена в записи:\n\n");
        Rus("Введите новый диагноз:\n");
        cin>>newdiagnosis.diagnosis;
        list=newdiagnosis;
       
    }
    else
    {
        Rus("ФИО больного не найдена в записи:");
    }
}



Хотя сам проанализировал присваивания разное, все получалось:

Код:
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <string.h>
using namespace std;

struct T
{
    char dim[30];
};
void main()
{  
    T and={"dfdfd"};
    T fud={"ffffffffff"};
    and=fud;//структурное присваивание
    int a=5,b=7;
    a=b;//целочисленное присваивание
    char d='w',s='s';
    d=s;//символьное присваивание
    char str1[20]="dfdfdf";
    char str2[20]="qqqqqq";
    for(int i=0;i<20;i++)
    {
        str1=str2;//строковое присваивание
    }
    cout<<"a="<<a<<"\n";
    cout<<"d="<<d<<"\n";
    cout<<"str1="<<str1<<"\n";
    cout<<"and="<<and.dim<<"\n";
}
307
31 октября 2008 года
Artem_3A
863 / / 11.04.2008
Используй манипуляторы и флаги форматирование для вывода на консоль, к примеру мой знакомый с помощью сканфа таблицы рисовал, погугли на эту тему.
38K
01 ноября 2008 года
ДмитрийизОдессы
9 / / 26.07.2008
Манипуляторы и флаги форматирования это уже классы и ООП, вроде. Пока к сожалению или к счастью не дошли. Просмотрел тему, рано нам еще такое. Спасибо за подсказку!
307
15 ноября 2008 года
Artem_3A
863 / / 11.04.2008
Вообще то в принципе это одно и тоже, так как библиоткеки ввода С++ это ООПшные варианты СИшных потоковых функции, и флаги как раз относяться к последним, если я ни чего не путаю.
38K
15 ноября 2008 года
ДмитрийизОдессы
9 / / 26.07.2008
Решил задачку с помощью функции strcat, возможно примитивно, но результат дает. Функция заключенна в цикл и добавляет пробел к полю до его номинального:

Код:
struct Account
{
    char name[19];//ФИО больного
   
};
size_t length_name = strlen(list.name);//функция возвращет длину строки
size_name = (18-1) - length_name;//расчет реальной длины строки name,
19 минус нулевой элемент и минус  символ таблицы, список заключен в таблицу
for(int j=0; j<size_name; j++)//присоединение необходимых пробелов
        {
            strcat(list_print.name," ");
        }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог