Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 92
#1

Linux: initializer-string for array of chars is too long - C++

12.11.2013, 08:15. Просмотров 566. Ответов 8
Метки нет (Все метки)

Возникла серьезная проблема:
создаю массив с текстом:

C++
1
2
3
4
5
6
const char text[][7] = {
    "Текст1",
    "Текст2",
    "Текст3",
    "Текст4"
};
А при компиляции выводит сообщение: initializer-string for array of chars is too long

Если я увеличу кол-во ячеек в массиве, но на выходе, вместо букв будут 'крякозябры', и их будет больше, чем букв в тексте одной из ячеек этого массива.

как исправить данную проблему?

(Использую Linux mint 14, компилю через терминал)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 09:27     Linux: initializer-string for array of chars is too long #2
Цитата Сообщение от Slava_ Посмотреть сообщение
Возникла серьезная проблема:
создаю массив с текстом:

C++
1
2
3
4
5
6
const char text[][7] = {
    "Текст1",
    "Текст2",
    "Текст3",
    "Текст4"
};
А при компиляции выводит сообщение: initializer-string for array of chars is too long

Если я увеличу кол-во ячеек в массиве, но на выходе, вместо букв будут 'крякозябры', и их будет больше, чем букв в тексте одной из ячеек этого массива.

как исправить данную проблему?

(Использую Linux mint 14, компилю через терминал)
C++
#include <iostream>
using namespace std;
 
const wchar_t text [][7] = {
  { L"Текст1" },
  { L"Текст2" } ,
  { L"Текст3" },
  { L"Текст4" }
} ;
 
int main() {
 
  wcout << text[1] << endl;
 
}
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 92
12.11.2013, 10:12  [ТС]     Linux: initializer-string for array of chars is too long #3
Прикол в том, что раньше не было такого, у меня есть и другие .cpp файлы в которых имеется русский текст, там все хорошо. Но текст там в виде закорючек (не знаю названия кодировки) перевожу текст в такую же - эффекта никакого.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 10:18     Linux: initializer-string for array of chars is too long #4
Slava_, может быть надо сменить кодировку терминала?
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 92
12.11.2013, 10:29  [ТС]     Linux: initializer-string for array of chars is too long #5
Стоит Юникод (UTF-8)
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 10:40     Linux: initializer-string for array of chars is too long #6
Цитата Сообщение от Slava_ Посмотреть сообщение
Стоит Юникод (UTF-8)
попробуйте другие или в самой программе поменяйте локаль:
Почему не выводит текст из файла (CP1251)?
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 92
12.11.2013, 10:47  [ТС]     Linux: initializer-string for array of chars is too long #7
Установка этих 'крякозябров' происходит непосредственно при компилировании, вот почему ругается на длину, хотя текст в исходниках нормальный.

В терминале устанавливал разные кодировки, все равно та же ошибка.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 11:10     Linux: initializer-string for array of chars is too long #8
Slava_, а сам исходник в какой кодировке?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 14:24     Linux: initializer-string for array of chars is too long
Еще ссылки по теме:

Ошибка "string for array of chars is too long" C++
C++ Инициализация массива: ошибка "array must be initialized with a brace-enclosed initializer"
Std::vector для Array of String C++
C++ Написать программу учёта абитуриентов, описав типы Array и String
C++ Ошибка char-array initialized from wide string

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

Или воспользуйтесь поиском по форуму:
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 92
12.11.2013, 14:24  [ТС]     Linux: initializer-string for array of chars is too long #9
То же UTF-8

Добавлено через 58 минут
Менял кодировку файла, ошибка не исчезла.

Добавлено через 1 час 55 минут
Исправил проблему поставил кодировку ANSI и переписал текст вручную, после чего все заработало.
Yandex
Объявления
12.11.2013, 14:24     Linux: initializer-string for array of chars is too long
Ответ Создать тему
Опции темы

Текущее время: 18:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru