Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация полей структуры Си. 
:(
    Опции темы
Compositum
Дата 26.12.2011, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Senior developer
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 430
Регистрация: 6.1.2008
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Нацарапал такой код на Си (C89):
Код

#include<stdio.h>
#include<wchar.h>
#include<wctype.h>

struct customer {
    wchar_t name[31];
    wint_t surname[31];
    unsigned int age;
};

int main(void){
    struct customer ivan;
    struct customer david;
    
    ivan.name =  L"Ivan";
    ivan.surname = L"Ivanov";
    iava.age = 32;

    david = ivan;
}

Читая справочник Шильдта я всё же не понял, для чего имеется ДВА типа, хранящих двухбайтовый символ: wchar_t и wint_t?
Далее, пытаюсь компилировать:
Цитата

bush@bush-VComp ~/Документы $ gcc 4.c 
4.c: В функции «main»:
4.c:15:12: ошибка: incompatible types when assigning to type «wint_t[31]» from type «int *»
4.c:16:15: ошибка: incompatible types when assigning to type «wint_t[31]» from type «int *»
4.c:17:2: ошибка: «iava» undeclared (first use in this function)
4.c:17:2: замечание: each undeclared identifier is reported only once for each function it appears in
bush@bush-VComp ~/Документы $ 

Я понимаю, что нужно в память, выделенную для полей структуры записать значения искомого текста. Но... Как проще/правильней это было бы записать? Как ни странно, но у указанного мною автора нет примеров на эту тему. Он только числа полям присваивал. smile 

Спасибо
PM   Вверх
boostcoder
Дата 26.12.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



Цитата(Compositum @  26.12.2011,  22:32 Найти цитируемый пост)
ivan.name =  L"Ivan";

такого делать нельзя.
используй wcscpy()
PM WWW   Вверх
feodorv
Дата 26.12.2011, 23:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(Compositum @  26.12.2011,  22:32 Найти цитируемый пост)
    wint_t surname[31];

wint_t здесь явно не подходит. Нужен именно wchar_t: Introduction to Extended Characters
Цитата

...but if wchar_t is defined as char the type wint_t must be defined as int due to the parameter promotion.



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Compositum
Дата 27.12.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Senior developer
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 430
Регистрация: 6.1.2008
Где: Санкт-Петербург

Репутация: нет
Всего: 1



всем спасибо!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.