Вопрос № 84149: Как сделать так чтобы результаты проги записывались в текстовый файл!!!!!! помогите пожалуйста!!!!! Заранее спасибо!!!! ...Вопрос № 84168: Здравствуйте, уважаемые эксперты!
Где можно найти задачи на C++ для новичков, которые недолго изучают этот язык программирования? Хочу потренироваться....Вопрос № 84184: Здравствуйте!
Каким образом в диалоговом окне делают нечто вроде выпадающей вкладки? Т.е. в диалоговом окне есть такая стрелочка на неё жмешь и ваезжает вторая чать диалогового окна до этого момнета не видимая?
Спаибо!...Вопрос № 84217: Здравствуйте, эксперты. Помогите кто сколько может!
Я пишу программу в Borland C++ Builder 6.0. Возникает проблема при обращении к элементам связного списка, состоящего из структур Region, в функции Quadtree(...).
На 1-й итерации (если считат...Вопрос № 84219: Доброго времеми суток, уважаемые эксперты.
У меня будет к вам 2 вопроса.
Вопрос первый:
Есть некая переменная (может принимать значения 5, 10, 15, 20) которая храниться в int массиве Array[1].
Есть таймер. И еще есть ProgressBar. Ка...Вопрос № 84238: Доброго времени суток. Эксперты, помогите чайнику. Попытался использовать ShellExecute, а компилятор рассыпался в 153 ругательствах: все не могу привести, слишком их много.
Компилятор: Visual C++ 2005. Что я не так сделал?...Вопрос № 84241: Уважаемые эксперты!!! Помогите переформатировать массив типа char buffer_1[1024] в массив типа char buffer_2[2048]. Предпологается: читаем из Comport
ComPort1-> Read(buffer_1,Count); и имеем в burffer_1:{0x00,0xFF}
Нужно переформатировать ...Вопрос № 84276: здраствуйте уважаемые эксперты. Я пишу на С++ Bulder 6,
так вот мой вопрос:
как написать программу для Windos XP, чтобы программа вывела в LPT порт файл написаный в шеснадцатиричном коде.
какие основные принципы для написания ...Вопрос № 84290: Доброго всем времени суток!!!
У мемя возникла проблемка.
{
FILE *fn1,*fn3;
....
fn3=fopen(PathNum.c_str(),"r");
do{
fgets(Num,32,fn3);
if(Num[strlen(Num)-1]=='
'){Num[strlen(Num)-1]=0;}<b...
Вопрос № 84.149
Как сделать так чтобы результаты проги записывались в текстовый файл!!!!!! помогите пожалуйста!!!!! Заранее спасибо!!!!
Отправлен: 25.04.2007, 15:19
Вопрос задал: Maratka (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ilkras
Здравствуйте, Maratka!
самый лучший способ - пользоваться fprintf вместо printf, тогда все будет записано в файл.
на скорую руку можно перенаправить вывод консольной аппликации в файл с помощью операции ">". например:
ping 127.0.0.1 > my_file.txt - перенаправить и записать в файл
type my_fyle.txt - распечатать файл в консоль
Ответ отправил: Ilkras (статус: 8-ой класс)
Ответ отправлен: 25.04.2007, 16:08
Отвечает: kool
Здравствуйте, Maratka!
Если прога консольная,
то в командной строке пишем
имя_проги.exe ее_параметры > имя_файла_куда_будет_записано_то_что_прога_выдает_на_экран.txt
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 25.04.2007, 19:27
Отвечает: Ross
Здравствуйте, Maratka!
Самый удобный на мой взгляд способ писать текстовые файлы - использовать файловые потоки. Для этого подключаете хидер fstream.h и объявляете файловый поток:
ofstream f("output.txt");
для того, чтобы записать содержимое переменной s в файл:
f << s;
Для чтения из файла
ifstream f("input.txt");
f >> s;
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: 8-ой класс)
Ответ отправлен: 26.04.2007, 00:46
Отвечает: Mister Vova
Здравствуйте, Maratka!
#include <stdio.h>
#include <stdlib.h>
int main ()
{
FILE *MyFile;
int dat;
randomize(); //
MyFile=fopen("d:\DUMMY.txt", "w+");
for (int i=0;i<100;i++)
{
dat=random(256);
fprintf(MyFile,"
%4d %c",dat,dat);
}
fclose(MyFile);
return 0;
}
--------- Всё про Себя Тут Www.SahajaYoga.Ru
Ответ отправил: Mister Vova (статус: 3-ий класс)
Ответ отправлен: 26.04.2007, 13:53
Вопрос № 84.168
Здравствуйте, уважаемые эксперты!
Где можно найти задачи на C++ для новичков, которые недолго изучают этот язык программирования? Хочу потренироваться.
Отправлен: 25.04.2007, 17:09
Вопрос задал: Smelly (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: V1s0r
Здравствуйте, Smelly!
Попробуй книгу Герба Саттера "Сложные задачи на С++"
Можно и т.2 "Новые сложные задачи на С++".
Удачи! ;)
Ответ отправил: V1s0r (статус: 3-ий класс)
Ответ отправлен: 25.04.2007, 17:37
Отвечает: Boriss
Здравствуйте, Smelly!
Зы: Саттера (djvu) можно найти на http://bookshelf.ru/2007/02/08/novye_slozhnye_zadachi_na_s.html, там зарегистрироваться нужно
А простые задачи с описанием, можно найти ... Попробовал ссылки - не работают. Прикрепил к ответу. Мало будет напиши, еще много есть
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор) Россия, Саранск Организация: mte WWW:Программирование на Паскале ---- Ответ отправлен: 27.04.2007, 12:19 Оценка за ответ: 5
Вопрос № 84.184
Здравствуйте!
Каким образом в диалоговом окне делают нечто вроде выпадающей вкладки? Т.е. в диалоговом окне есть такая стрелочка на неё жмешь и ваезжает вторая чать диалогового окна до этого момнета не видимая?
Спаибо!
Отправлен: 25.04.2007, 18:43
Вопрос задал: Tatarin (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: QDSota
Здравствуйте, Tatarin!
На самом деле ничего ниоткуда не выезжает... Примеров реализации несколько - просто разными способами делать ненужные контролы и часть формы невидимыми.
Простейший из них:
Пусть диалоговое окно "без выпавшей вкладки" имеет высоту Vmin, а "с выпавшей вкладкой" имеет высоту Vmax. Создаешь нужную форму, имеющую вид "с выпавшей вкладкой". А перед выводом на экран делаешь ее высотой Vmin. При этом "выпадающая вкладка" внизу формы на нее не помещается и не отображается. По нажатию "стрелочки" высоту формы увеличиваешь до Vmax.
--------- Открыть глаза навстречу солнцу
Ответ отправил: QDSota (статус: Профессионал) Тел.: 8-916-53-43-916 ICQ: 84611301 ---- Ответ отправлен: 26.04.2007, 08:43 Оценка за ответ: 5 Комментарий оценки: Спасибо за оригинальную идею! Щас пойду воплощать в жизнь!
Вопрос № 84.217
Здравствуйте, эксперты. Помогите кто сколько может!
Я пишу программу в Borland C++ Builder 6.0. Возникает проблема при обращении к элементам связного списка, состоящего из структур Region, в функции Quadtree(...).
На 1-й итерации (если считать с 0-й) цикла for(...) программа вылетает и на экран выводится ошибка: "Access violation at address 00401EFE in module Search.exe. Read of address 616C6F79."; а в окне редактора кода выделяется строка: pPartitReg = pPartitReg->pNextRegion;
Насколько я понимаю ошибка связана с нарушением доступа к памяти, но как это возможно? С момента запуска программы и до момента возникновения ошибки динамически была выделена память под 4 экземпляра структур Region и ни под что более.
Функция Quadtree(...) вызывается из обработчика нажатия кнопки следующим образом: Quadtree(pFirstReg, NULL); где pFirstReg - указатель на предварительно выделенный в памяти экземпляр структуры Region.
Приложение:
Отправлен: 25.04.2007, 22:15
Вопрос задал: Strider-13 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Unreal2004
Здравствуйте, Strider-13!
Здравствуйте, Strider-13!
Прогони программу с включенным CodeGuard (он покажет утечки памяти). Лениво разбираться, но такое чувство что в добавлении новых областей AddAndInitAdjRegions теряется память
pSourceReg = pSourceReg->pNextRegion;
pSourceReg = new Region;
и в результате у тебя появляется обращение к совершенно левой мусорной памяти и срабатывает защита
Ответ отправил: Unreal2004 (статус: 2-ой класс)
Ответ отправлен: 25.04.2007, 23:42
Вопрос № 84.219
Доброго времеми суток, уважаемые эксперты.
У меня будет к вам 2 вопроса.
Вопрос первый:
Есть некая переменная (может принимать значения 5, 10, 15, 20) которая храниться в int массиве Array[1].
Есть таймер. И еще есть ProgressBar. Каким образом можно сделать индикатор таймера из ProgressBar-а? То есть, чтобы переменная из массива подставлялась, как максимальное значение ProgressBar. Мой вариант в листинге почему-то не работает, хотя теоретически должен бы был.
====
Второй вопрос будет таким:
Есть ini-файл, в котором записываются значения, с помощью TIniFile(такого вида ini->WriteString("Options", "Process_1", Edit1->Text);). Как можно прочесть строковые (например process.exe) данные из ini-файла, отправить их в массив, и оттуда программно "вписать" обратно в Edit1.
Заранее благодарен.
Приложение:
Отправлен: 25.04.2007, 23:00
Вопрос задал: Noman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Unreal2004
Здравствуйте, Noman!
Все работает, только в С и С++ массивы начинаются с 0, а не с 1. :-)
ProgressBar1 -> Max = Array[1]*10; - тут читается какаято каша из памяти за массивом
Должно быть
ProgressBar1 -> Max = Array[0]*10;
Ответ отправил: Unreal2004 (статус: 2-ой класс)
Ответ отправлен: 26.04.2007, 00:10 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ. Действительно глупая ошибка, хотя даже исправив это проблема не исчезла. Я смог ее решит только после ввода еще одного таймера в систему, с использованием переменной из массива.
Вопрос № 84.238
Доброго времени суток. Эксперты, помогите чайнику. Попытался использовать ShellExecute, а компилятор рассыпался в 153 ругательствах: все не могу привести, слишком их много.
Компилятор: Visual C++ 2005. Что я не так сделал?
Приложение:
Отправлен: 26.04.2007, 01:28
Вопрос задал: Elpher2006 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: kool
Здравствуйте, Elpher2006!
Напиши перед строкой
#include "shellapi.h"
такую строку
#include
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 26.04.2007, 19:58
Вопрос № 84.241
Уважаемые эксперты!!! Помогите переформатировать массив типа char buffer_1[1024] в массив типа char buffer_2[2048]. Предпологается: читаем из Comport
ComPort1-> Read(buffer_1,Count); и имеем в burffer_1:{0x00,0xFF}
Нужно переформатировать и иметь в buffer_2:{0x30, 0x30, 0x46, 0x46} для того, чтобы эти данные затем поместить в StringGrid, и на экране визуально наблюдать принятые данные в HEX формате.
Заранее благодарен.
Отправлен: 26.04.2007, 04:00
Вопрос задал: Logan2 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Mailusr
Здравствуйте, Logan2!
см. приложение, причем buffer_1 должен быть типа unsigned char
Приложение:
Ответ отправил: Mailusr (статус: 2-ой класс)
Ответ отправлен: 26.04.2007, 07:47
Отвечает: Ilkras
Здравствуйте, Logan2!
насколько я понял вам надо выбрать четные элементы и поместить их во второй массив:
for(int i=0, j=0; i < FIRST_ARRAY_SIZE; i++)
if(i%2)
buffer_2[j++] = buffer_1[i];
Ответ отправил: Ilkras (статус: 8-ой класс)
Ответ отправлен: 26.04.2007, 10:16
Отвечает: kool
Здравствуйте, Logan2!
Переформатировать массив типа char buffer_1[1024] в массив типа char buffer_2[2048]
невозможно можно только копировать.
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 26.04.2007, 19:04
Вопрос № 84.276
здраствуйте уважаемые эксперты. Я пишу на С++ Bulder 6,
так вот мой вопрос:
как написать программу для Windos XP, чтобы программа вывела в LPT порт файл написаный в шеснадцатиричном коде.
какие основные принципы для написания подобнорй программы
Основной принцип - открывать порт как файл. Примерно так:
int PORT=CreateFile("LPT1",GENERIC_WRITE,0,0,OPEN_EXISTING,0,0), byteswritten;
char buf[]={12,13,10,13,10,13,10,13,10,55};//Сюда читаються данные из файла
if(PORT!=INVALID_HANDLE_VALUE){
WriteFile(PORT,buf,sizeof(buf),byteswritten,0);
CloseHandle(PORT);
}
else printf("Error open port");
--------- Открыть глаза навстречу солнцу
Ответ отправил: QDSota (статус: Профессионал) Тел.: 8-916-53-43-916 ICQ: 84611301 ---- Ответ отправлен: 26.04.2007, 10:15
Отвечает: Sov
Здравствуйте, Ivan Abramovich!
Используйте API функции CreateFile,Writefile
Приложение:
Ответ отправил: Sov (статус: 2-ой класс)
Ответ отправлен: 27.04.2007, 07:06 Оценка за ответ: 5
Вопрос № 84.290
Доброго всем времени суток!!!
У мемя возникла проблемка.
Здесь из некоторого текстосого файла считывается строка в массив символов *Num, далее надо создать для записи D:Num.txt. Т.к. Num меняется, то я копиру NumCpy. Для моей задачи Name(полный путь) и NumCpy(копия считанной строки) лучше объявить динамически. Путь формирую при помощи strcat.Если имя файла сформировать strcat(NumCpy,".txt"), то все проходит нормально. Но как только добавляется strcat("D:\",NumCpy),имя файла формируется,а поток не открывается и fn1=NULL. Почему?!!!! И как это исправить?
Заранее благодарен.
Отвечает: Ilkras
Здравствуйте, Козлов Николай Валерьевич!
ваша ошибка в следующем: сначала вы динамически выделяете память для строки FName, а затем присваиваете ей значение указателя на строку выделенную компилятором. "D:\" имеет тип "const char *" Память выделенная для нее определяется фактической длиной текста в строке с точностью до alignment.
Вместо присвоения - копируйте: strcpy(FName, "D:\");
Ответ отправил: Ilkras (статус: 8-ой класс)
Ответ отправлен: 26.04.2007, 13:23
Отвечает: Ross
Здравствуйте, Козлов Николай Валерьевич!
я чет не понимаю пару моментов:
strcat("D:\",NumCpy) - что к чему вы добавляете???? ;) (Numcpy к какой то константе?)
или FName="D:\"; ??? (так нельзя писать, нужно исп. strcpy)
Путь к файлу формируется так (в f_name - имя файла без расширения):
char * file_path = new char[strlen(f_name)+64];
strcpy(file_path,"D:\");
strcat(file_path,f_name);
strcat(file_path,".txt");
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: 8-ой класс)
Ответ отправлен: 26.04.2007, 13:33
Отвечает: kool
Здравствуйте, Козлов Николай Валерьевич!
Скорее всего нет такого файла по
сформированному пути. Можно посмотреть ошибку
ф-цией GetLastError().
Удачи!
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 26.04.2007, 19:59