|
|
Другие темы раздела | |
C++ Формирование нового массива из элементов данного массива, кратных трем
https://www.cyberforum.ru/ cpp-beginners/ thread195171.html формировать новый массив из элементов кратных 3 (на языке Си) заранее спасибо) |
Сортировка вектора C++ Подскажите, пожалуйста, как можно отсортировать вектор, заполненный структурами DataStruct, используя алгоритмы сортировки stl? Критерий сортировки - поле key1, например. struct DataStruct { int key1; int key2; string key3; } |
C++ Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа? Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX. F= a*x*x +b*x +c(при a<0 и с не равном 0) F=-a/(x-c)(при a>0 и с=0) F=a(x+c)(в остальных случаях) где а,b, с — действительные числа. Функция F должна принимать действительное значение, если выражение Ац И (Вц ИЛИ Сц) не равно нулю, и целое значение в противном случае. Через Ац, Вц и... https://www.cyberforum.ru/ cpp-beginners/ thread195166.html | C++ Работа с Heap Помогите найти ошибку а то я что-то уже зае**** Так работает if(!data){//первый вызов функции if(data=(uchar*)my::malloc(newDataSize)){ my::memcpy(data,newData,newDataSize); dataSize=newDataSize,totalAllocSize=newDataSize; } } https://www.cyberforum.ru/ cpp-beginners/ thread195158.html |
Есть текст. Требуется(мне) написать программу для вывода каждого слова в столбик и рядом, чтоб было написано, сколько раз упоминается в тексте C++ Мои очередные жалкие попытки написать код: #include <sstream> #include <iostream> #include <string> #include <fstream> #include <stdio.h> using namespace std; int main() { ifstream ifs("x.txt"); |
C++ Отсортировать слова в строке! Есть множество слов, упорядочить их так, чтобы буква, на которую слово заканчивается, начинало следующее https://www.cyberforum.ru/ cpp-beginners/ thread195148.html |
C++ метод-доступа, класс, объекты из книги С++ за 21 день Джесса Либерти Если объявить класс Cat с закрытым членом itsAge, а затем определить два объекта Cat с именами Frisky и Boots, то может ли объект Boots получить доступ к переменной-члену itsAge объекта Frisky? Да. Закрытые данные доступны для функции-членов класса, и различные экземпляры одного класса могу обращаться к данным друг друга. Иными словами, если Frisky и... https://www.cyberforum.ru/ cpp-beginners/ thread195146.html |
Вывод числа в столбик (без использования строковых переменных) C++ Дано натуральное число N. Не используя строковые переменные, вывести в столбик это число. Для решения использовать функции целочисленного деления и вычисления остатка от деления целых чисел. |
C++ Найти сумму дополнительных чисел побочной диагонали матрицы Всем привет Ну для начала хотелось бы сказать, что это лучший сайт и форум который я когда-либо видел и всем кто мне помагал и остальным хотелось бы сказать огромное спасибо):) А теперь вернёмся к моей проблеме нужно сделать 3 задачки Они таковы 1. Найти максимальный элемент массива и его индекс (двумерный массив) https://www.cyberforum.ru/ cpp-beginners/ thread195142.html | C++ Критично ли использование goto при выходе из циклов? #include <conio.h> #include <iostream.h> void main() { int a,n,i,s=0; cout<<"\tInput n<=20"<<endl; cin>>n; cout<<"\n\t Massiv A"<<endl; for(i=0;i<n;i++) { https://www.cyberforum.ru/ cpp-beginners/ thread195140.html |
Текст из файла переводить в строку C++ 1. Как переводить текст из файла в строку, для работы потом, как со строкой? fstream x; x.open("x.txt"); char a; //а потом что? |
C++ Выход из бесконечного цикла по нажатию кнопки. Привет всем. как можно выйти из такого цикла по нажатию какой любой кнопки (например Esc) int main(){ while(1){ cout << "Text"; } return 0; https://www.cyberforum.ru/ cpp-beginners/ thread195126.html |
213 / 137 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
|
0 | |
Почему после выполнения команды cprintf значения строк затираются? - C++ - Ответ 113028122.11.2010, 00:23. Показов 1126. Ответов 5
Метки (Все метки)
Здраствуйте. Помогите пожалуйста, что это может быть, что вот уже больше дня играюсь с билдером и он непонятно что творит. Например, написана функция для ввода текста в многострочном поле определенной длины:
Код
int InputSMS(char *str, int lim, float pric) { char cyrilic[]="АБВГґДЕЄЖЗИЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯабвгдеєжзиїйклмнопрстуфхцчшщьюя"; int charCount=0,x,y,i,k,n,z; //for(i=0;i<=lim;i++) str[i]='\0'; x=wherex(); y=wherey(); lim--; //str[0]=0;str[lim]=0; int key=0,tmp=0,tmp2=0,del=70; gotoxy(59,6); textbackground(7); cprintf("0"); gotoxy(59,7); cprintf("1 "); gotoxy(59,8); cprintf("%1.2f ",pric); textbackground(3); gotoxy(x,y); for(i=0;key!=13;i++) { key=getch(); if(key>=32 || key<=-3) { if(charCount>lim) { i--;continue; } tmp=str[i]; for(int j=i;j<lim-1;j++) { tmp2=str[j+1]; str[j+1]=tmp; tmp=tmp2; } str[i]=key; charCount++; gotoxy(59,6); textbackground(7); z=strlen(str); cprintf("%i ",z); if(z){ if(strpbrk(str,cyrilic)==NULL) del=160; else del=70; gotoxy(59,7); cprintf("%i ",z/del+1); gotoxy(59,8); cprintf("%1.2f",(z/del+1)*pric); } textbackground(3); if(strlen(str)>36){ k=(z-1)/36; gotoxy(x,y+k); for(n=k*36;n<=z-1;n++) cprintf("%c",str[n]); gotoxy(x+i+1-k*36,y+k); }else{ gotoxy(x,y); cprintf("%s",str); gotoxy(x+i+1,y); } continue; } if(key==8) { if(wherex()==x) { i--;continue; } k=(strlen(str)-1)/36; gotoxy(x+charCount-1-k*36,y+k); cprintf(" "); gotoxy(wherex()-1-k*36,wherey()+k); tmp=str[charCount-1]; for(int j=charCount-1;j!=i-1;j--) { tmp2=str[j-1]; str[j-1]=tmp; tmp=tmp2; } charCount--; str[charCount]=0; gotoxy(59,6); textbackground(7); cprintf("%i ",strlen(str)); if(strlen(str)){ if(strpbrk(str,cyrilic)==NULL) del=160; else del=70; gotoxy(59,7); cprintf("%i ",strlen(str)/del+1); gotoxy(59,8); cprintf(" "); gotoxy(59,8); cprintf("%1.2f",(strlen(str)/del+1)*pric); } i-=2; textbackground(3); if(strlen(str)>36){ k=(strlen(str)-1)/36; gotoxy(x,y+k); for(n=k*36;n<=strlen(str)-1;n++) cprintf("%c",str[n]); gotoxy(x+i+1-k*36,y+k); }else{ gotoxy(x,y); cprintf("%s",str); gotoxy(x+i+1,y); } continue; } if (key==13) { if(!i) { key=0; i--; continue; } str[charCount]=0; break; } if(key==27) return 27; if(key==0xE0) { i--; continue; } if(key==0){ key=getch(); if(key==75) { if(wherex()==x) { if(wherey()==y){ i--; continue; }else{ gotoxy(wherex()+35,wherey()-1); i-=2; continue; } } gotoxy(wherex()-1,wherey()); i-=2; continue; } if(key==77) { if(wherex()==lim+5 || charCount==i) { i--; continue; } gotoxy(wherex()+1,wherey()); continue; } } i--;continue; } } Код
str[i]=key; charCount++; gotoxy(59,6); textbackground(7); z=strlen(str); cprintf("%i ",z); Это только один глюк... А если продолжить рассказ: Код
z=strlen(str); cprintf("%i ",z); if(strlen(str)){ if(strpbrk(str,cyrilic)==NULL) del=160; else del=70; gotoxy(59,7); cprintf("%i ",z/del+1); gotoxy(59,8); cprintf("%1.2f",(z/del+1)*pric); } textbackground(3); if(strlen(str)>36){ k=(z-1)/36; gotoxy(x,y+k); for(n=k*36;n<=z-1;n++) cprintf("%c",str[n]); gotoxy(x+i+1-k*36,y+k); }else{ gotoxy(x,y); cprintf("%s",str); gotoxy(x+i+1,y); } И таких глюков в программе еще пару десятков. Например, есть такой случай: Код
void MyFunction() { тут куча кода... куча кода... Window(1,2,79,24,1,0,'n'); //эта команда выполняется и после нее ничего нет. //А значит управление должно перейти в главную функцию. Но... смотрите в int main } int main() { куча функций и команд... куча функций и команд... куча функций и команд... MyFunction(); команда после функции //эта команда не выполняется!!... } Я долго ломал голову, от чего же это так, пока в пошаговом исполнении программы я случайно не поставил брекпойнт на закрывающую скобку функции MyFunction(). И как оказалось, после выполнения последней команды в функции управление переходит на нее. Я нажимаю Play(для продолжения работы программы после остановки на брекпойнте), после чего программа снова отсаовилась на скобке. Я снова нажимаю Play - она снова на скобке. Я взял и поставил брекпойнты тупо на всех строчках кода, и как оказалось, после выполнения вот этой функции программа переходит на скобку } и выполняется на ней бесконечно Я тупо в ауте. И это я не все глюки перезвал. Уже больше года имею дело с средами программирования и самим программированием, но такие чудеса, которые не вкладываются ни в какие законы физики, математики или программирования я вижу впервые :megashok: Что это может такое быть?:'( Помогите пожалуйста, очень прошу. У меня уже просто идеи кончились и я смотрю в монитор квадратными глазами и не знаю что делать. Другое дело, если бы знать причину глюков, а так ведь они эти глюки появляются там, где такое вообще невозможно практически, и программа работает по каким-то аномальным законам Вернуться к обсуждению: Почему после выполнения команды cprintf значения строк затираются? C++
0
|
22.11.2010, 00:23 | |
Готовые ответы и решения:
5
Как и почему меняется содержимое регистров после выполнения очередной команды Получение значения ключевого поля после выполнения команды TableAdapter.Insert() После выполнения определённой команды не выполняются последующие команды Выполнения команды после завершения предыдущей |
22.11.2010, 00:23 | |
22.11.2010, 00:23 | |
Помогаю со студенческими работами здесь
0
Перезапуск скрипта, после выполнения команды Не обновляется daragrid после выполнения SQL команды Требуется произвести дебаг после выполнения команды Вывести направление робота после выполнения полученной команды Вывести направление робота после выполнения полученной команды Вывести направление работа после выполнения полученной команды |