Integrated Development Environment = ИДЕ aka IDE Если был бы Borland C++, мог бы юзать TStringList, поэтому и спросил.
Ток сёдня начал учить c++) написал пары выводов и вводов ну в общем вот Code: #include <iostream> using namespace std; int main() { int vibor; cout <<"Vvedite vash vibor\n"; cin >>vibor; if(vibor==1) { int visota, osnovanie, ploshad; cout <<"Visota treugolnika\n"; cin >>visota; cout <<"Osnovanie treugolnika\n"; cin >>osnovanie; ploshad = (visota * osnovanie) / 2; cout <<"Ploshad:" <<ploshad <<"\n" <<endl; system("PAUSE"); return 0; } if(vibor == 2) { int funt; float kilo; cout <<"Kolichestvo funtov?\n"; cin >>funt; kilo = funt * 0.4095124; cout <<"V kilogramah:" <<kilo <<"kg\n" <<endl ; system("PAUSE"); return 0; } cout <<endl; return 0; } У меня она работает а на соседем компе нет. В чём моя ошибка? даже если засунуть в сетевую папку нвходяшиюся на другом копе и запустить то всёравно не запускаеца...
компилировал и линковал в дебаг моде поэтому дебаг dll-ки отсутствуют .... нужно в конечном итоге перелинковать в релиз моде, если хочешь чтоб програмка использовала только стандартные dll-ки
Fata1ex ну \n это перевод строки а <<endl конец строки и очистка буфера=) Delimiter ой думал я в релиз моде а я посто делал релиз и нажимал зелёную кнопку ипа плей(start debugging) vc++ 2005
Наверно на другом компе sp1 винда, по умолчанию exe-шник компилится со стандартными библиотеками windows, и в sp1 много чего не хватает, поэтому может появляться ошибка, тогда можно сделать так - Project->Properties , там на вкладке General есть пункт - "Use of MFC" , выбирай Use in Static library , после этого у тебя прога потяжелеет кило на 200-300, точна не считал, но точна уже запуститься, хоть на Windows 2000.
((( не смог сам сделать гистограмму на С. Помогите плиз. Code: #include <stdio.h> /*program for copy input string to output string, in this programm here edit symbol tab and backspace for input \\ */ main() { int c, t, space, n, i, l, z, h; char array[100], nl; c = t = space = n = 0; for (i = 0; i < 100; ++i) { array[i] = 0; } nl = '\\'; for(i=0;(array[i]=(char )getchar())!=EOF;i++) { if(array[i]=='\t') { array[i]=nl; ++t; } if(array[i]=='\b') { array[i]=nl; } if(array[i]>='0' && array[i]<='9') { n++; } if(array[i]==' ') { space++; } if(array[i]=='\n') { array[i] = 0; printf(" _\n"); for (z=0; z<i; ++z) { if (array[z] == ' ') { printf(" _\n"); } else { printf("| |\n"); } } printf("\nSymbol:\n%s\r\n", array); printf("\nTab:%d", t); printf("\nSpace:%d", space); printf("\nNumber:%d\n", n); break; } } }
почему ты не даешь циклу нормально работать??? Вывод результатов нужно делать ПОСЛЕ работы цикла! А иначе получается ты пытаешься выводить каждый раз когда нажимаешь Enter, как же в таком случае ты посчитаешь сколько раз он нажат. Если его не нужно считать и он должен завершать ввод, то просто for(i=0;(array=(char )getchar())!='\n';i++) и внизу в цикле не нужно ничего пихать в массив(вместо табуляции), только считай повторы поскольку ты пихаешь каждый символ уже for(i=0;(array=(char )getchar())!='\n';i++) тут_______/ и это чего должно делать? Code: for (z=0; z<i; ++z) { if (array[z] == ' ') { printf(" _\n"); } else { printf("| |\n"); } } если это гистограмма то почему ты не используешь уже вычесленные n,space,t? загоняй в for типа Code: for(i=0;i<space;i++) printf('='); printf("\r\n"); одна линейка готова Если же ты хочешь выходить все таки по EOF то... Code: #include <stdio.h> /*program for copy input string to output string, in this programm here edit symbol tab and backspace for input \\ */ main() { int c, t, space, n, i, l, z, h; char array[100], nl; c = t = space = n = 0; for (i = 0; i < 100; ++i) { array[i] = 0; } nl = '\\'; for(i=0;(array[i]=(char )getchar())!=EOF;i++) { if(array[i]=='\t') { array[i]=nl; \\ непонятная замена ++t; } if(array[i]=='\b') { array[i]=nl; \\ непонятная замена } if(array[i]>='0' && array[i]<='9') { n++; } if(array[i]==' ') { space++; } if(array[i]=='\n') { array[i] = 0; printf(" _\n"); for(z=0;z<space;z++) printf('='); printf("spaces\r\n"); for(z=0;z<n;z++) printf('='); printf("numbers\r\n"); for(z=0;z<t;z++) printf('='); printf("tabs\r\n"); printf("\nSymbol:%s\r\n", array); printf("\nTab:%d\r\n", t); printf("\nSpace:%d\r\n", space); printf("\nNumber:%d\r\n", n); // и главное сбрасывай счетчик i // иначе в твоем исполнении опасно!!! i=0; //!!!!!!!!!!!!!!!!!!!!!!! // хотя этот break тебе и не даст 8))) // но УЧИСЬ сбрасывать счетчики чтоб // заработал EOF // break; УБИРАЕМ ЭТО!!!! // получится что статистика выводится только // при нажатии Ентера // значит нужно снова обнулить c = t = space = n = 0; } } }
Delimiter-> что то плохо все понял, пива сегодня немного перепил. Единственное что ярко понял, это делать вывод после работы цикла, а гистограмма нужна которая показывает длинну слов в виде гистограммы. А по поводу EOF это я вобще не знаю, что за прикол. Это выход из цикла когда нажимаешь Esc? Я ко всем примерам из учебника, добавляю '\n' потому что не знаю как без Entera выйти из программы. Отлично, я теперь все понял. Нужно делать гистограмму горизонтальной. А я хотел сделать ее вертикальной, и у меня не получалось.
EOF - это End Of File ( конец файла ) А смысл и правда \n добавлять?? либо endl либо \n . Что б понятней было переформатировать.
Если вывод делаешь через стандартный класс iostreаm и его предков и потомков, то конечно нужно использовать endl А если вывод делаешь по С (функция printf и ей подобные), то лучше кроме как \n ничего не получится просто я больше сишные люблю, привык к синтаксису, а у iostream команды управления вводом/выводом для cin/cout плохо знаю Но здесь как говориться, кому что нравиться
printf (и ее клоны) - это мощная команда кто умеет пользоваться форматами , даже само сравнение не коректно! Моська и слон!
Друг, ты немного ошибаешься, iostream тоже имеет много очень параметров, я нашел http://valera.asf.ru/cpp/book/c20.shtml Просто огромный мануал по библиотеке iostream , она ничуть не хуже чем printf и его семейство Просто привык к С , вот и пользуюсь printf , а некоторые друзья iostream, вот и все
извините .... что ошибся в вашей оценке мощности операторов >> << напиши то же что и ниже с помощью твоих операторов и сравним! float d=5,564632; printf("%.2f",d); ....вывести именно 2 знака после запятой
У каждого варианта есть свои преимущества и недостатки. Как вообще можно сравнивать потоковый вывод и printf ? И мне почему-то кажется что потоковы намного лучше, гораздо больше возможностей. Delimiter - streamsize precision(streamsize p); p - количество знаков после запитой. -> cout.precision(10); Или я не понял - вы про перегруженные операторы сдвига или про потоковый ввод - вывод? операторы так же можно самим перегрузить так чтобы выводилось заданное колво знаков после запятой. П.С. если делать все через манипуляторы - мона написать так - setprecision(int p); - работает аналогично
код с потоками, ко всему прочему, ещё гораздо нагляднее и читабельнее. Плюс, поток он же все-таки поток!!! - он сам по себе гораздо более функциональная и удобная вещь.
ну вот что и требовалось доказать в одну строчку вы не уложились 8))))) разговоров нет..... хотите 2ве - это ваше право..... и не пытайтесь запихнуть 2 оператора на одну строку 8))))))))))) хотите набирать больше символов ручками? Нравится абстрактное понятие поток??? 8)))) Прямо таки и льется??? Волнами???? Голубенький или всетаки коричневый??? 8))))))))) Вас дурят мужики .... ЛОЖКИ НЕТ! ... по поводу курицы и яйца, загляните в кернеловские функции и будете удивлены встретив там аналоги printf!