28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
1 | |
Несколько вопросов24.07.2011, 14:50. Показов 2307. Ответов 24
Метки нет (Все метки)
Добрый день. Начал писать одну программу в VS 2008 C++ (консоль) и столкнулся в несколькими проблемами. В общем желательно нужно, чтобы программа при запуске открывалась в окне размерами больше стандартных 80x25. Функция window( int, int, int, int) не работает. Далее в программе будут выводиться длинный список, выходящий за границы по вертикали. Как сделать, чтобы при выводе этого списка консольное окно автоматически не прокручивалось вниз или чтобы в итоге видна была первая строка списка? И последний вопрос: как считать с текстового файла строку в массив символов (строка) до определенного символа (например например считать строку "Hello world!" в один массив до знака перехода на следующую строку)?
0
|
24.07.2011, 14:50 | |
Ответы с готовыми решениями:
24
Несколько вопросов Несколько вопросов Несколько вопросов по указателям. Несколько вопросов к программистам. |
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
24.07.2011, 15:06 | 2 |
1. Щелкни правой кнопкой мыши на заголовке консольного окна. В контекстном меню есть Свойства. Туда войдешь, там установишь. Не забудь сохранить для всех окон. И не забудь установить буфер - там в свойствах увидишь
2. Выводить порциями по несколько строк и ждать ответа пользователя. Если первую строку надо постоянно держать, то ее надо с каждой порцией выводить в начале. 3. Читай функцию getline() для строк. Там третий параметр - символ ограничитель. По умолчанию - как раз '\n'
1
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
24.07.2011, 15:09 | 3 | |||||
1
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 15:16 [ТС] | 4 |
Спасибо большое за помощь. Буду пробовать. Одно что не совсем понял насчет второго пункта:
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
24.07.2011, 15:22 | 5 | |||||
2
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 15:32 [ТС] | 6 |
0
|
Заблокирован
|
||||||
24.07.2011, 15:35 | 7 | |||||
Задать размеры окна можно функцией MoveWindow, для вывода текста на одном и том же месте необходимо обращение к буфферу консоли, посмотри этот проект - это консольные часы которые идут в одной строке
1
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
24.07.2011, 16:28 | 8 |
Размер окна все равно упирается в размеры экрана. Поэтому если список длинный, то он по-любому весь не поместится в окно. Поэтому надо порциями выводить.
Но если тебе все же нужно видеть именно ПЕРВУЮ строку, то ее надо вместо с порцией выводить первой. Добавлено через 47 секунд -=ЮрА=-, ну что вы такое пишете для совсем ЗЕЛЕНОГО НОВИЧКА...
0
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
24.07.2011, 16:55 | 9 |
-=ЮрА=-, так в Вашем примере размер окошка не меняется, часы то идут в одной строке, но им то места больше не надо, а так размер окошка для консоли всё равно стандартный получается.
0
|
24.07.2011, 17:38 | 10 | |||||
Вот изменение консольного окошка
1
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 17:48 [ТС] | 11 |
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
24.07.2011, 19:10 | 12 |
0
|
Заблокирован
|
||||||
24.07.2011, 19:24 | 13 | |||||
Окошко в программе меняется програмно функцией MoveWindow - и то что окошко именно по часикам - результат подбора размеров окна 220 на 80
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 20:39 [ТС] | 14 |
А как вводить текст на русском? Я использую функцию setlocale( LC_ALL , "Russian"); , чтобы в коде распознавал кириллицу, но с этой функцией при вводе русской строки в консоль, выводится она неадекватно. Например при вводе "Привет" выведется "?аЁу?в"
0
|
Заблокирован
|
|
24.07.2011, 20:50 | 15 |
если новичок хочет врубится в прелести консоли, то вот здесь он найдёт массу интересного:
http://vsokovikov.narod.ru/New... con_fn.htm Я делаю вот так: SetConsoleOutputCP(1251); SetConsoleCP(1251); //не удалять! Русский букв!!! Запускаете консольное приложение, потом тыкаете на свойство консоли, и в выпавшем меню выбираете шрифт для консоли под названием Lucidia Console Делаете "применить для всех окон" /ps консоль будит выводить русские буквы правильно, вместо кракозябр. Вводятся же буквы априори правильные)
1
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 21:00 [ТС] | 16 |
Спасибо. Еще вопрос: как удалить определенную строку в текстовом файле? (Т.е. найти эту строку в файле и сделать так, чтобы ее там не было)
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 21:14 [ТС] | 18 |
0
|
Заблокирован
|
|
24.07.2011, 21:25 | 19 |
А вы попробуйте, узнаете))
Я сомневаюсь, что у вас один текстовый файл на миллион текстовых строк, в котором нужно делать быстрый поиск/вставку/удаление А вообще, никто не хранит миллионы обычных строк в текстовых файлах. Для этого используются особые форматы хранения данных. При которых данные индексируются хитрым способом, разбиваются на разные кусочки, что бы их было легче искать/модифицировать, ну и тп. Если хотите узнать об этом побольше, смотрите в сторону баз данных. Но сейчас, на вашем уровне вам полноценную БД делать пока ещё рановато.
0
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 21:27 [ТС] | 20 |
0
|
24.07.2011, 21:27 | |
24.07.2011, 21:27 | |
Помогаю со студенческими работами здесь
20
Несколько вопросов по строкам в С Несколько вопросов по извучению C++ Графический редактор. Несколько вопросов Несколько вопросов про массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |