пробегаем от 2 до половины текущего числа, и если находим хоть один делитель этого числа (то что делит нацело) то число не простое. Правильнее кстати будет пробегать от 2 до квадратного корня этого числа
Привет. Есть такой код: Code: #include <iostream> int main() { for (int i = 1; i<=100; i++) { std::cout << (!(i % 2) ? "Hello" : i) << std::endl; //вылазиит ошибка } return 0; } как можно через конструкцию ? : вставить i? Или как правильно все исправить, чтобы работало?
Спасибо. Но а если увеличить данну строку допустим до такого: Code: std::cout << ((!(i % 2) ? "Hello" : (!(i % 5) ? "World" : ((!(i % 2) && !(i % 5)) ? "HelloWorld" : i))) << std::endl;
тогда Google int to const char* и применить к i И принтить только строки! Дело в том что компилятор не может выбрать специализацию <<.
Помогите плиз...У компании собрана статистика по расходам и доходам за прошлый год в каждом месяце. Налог на прибыль - 10%. Отсортировать данные по возрастанию величины уплаченных налогов.
Код на C#: Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.CreateNoWindow = true; proc.Start(); proc.StandardInput.WriteLine(@"dir c:\"); //"ping localhost" string line; /* После считывания всех строк происходит зависание */ while ((line = proc.StandardOutput.ReadLine()) != null) { Console.WriteLine(line); } //proc.StandardInput.WriteLine("exit"); //proc.WaitForExit(); proc.Close(); Console.Read(); } } } Что нужно сделать, чтобы не повисать на цыкле, но считать всё из потока?
вся проблема в том, что условие Code: (line = proc.StandardOutput.ReadLine()) != null - неверно. Правильно было бы проверять на пустую строку: Code: (line = proc.StandardOutput.ReadLine()) != String.Empty но в результате так же есть пустые строки, из-за чего выдача информации прерывается преждевременно. в моём случае пустых строк 3. по этому, как вариант - считать пустые строки, и прекращать тогда, когда число пустых строк достигнуто. Code: string line; int count = 0; while (count < 4) { line = proc.StandardOutput.ReadLine(); Console.WriteLine(line); if (line == String.Empty) { count++; } }
Не вариант! Это команда дана для примера. И зависание происходит не в бесконечном цыкле, а когда всё считано и ещё раз вызывается ReadLine. Тоесть получается такой ступор. ReadLine ждёт данных которых нет, и не возникает ни исключения ни какого-либо возвращаемого значения. Вот она и висит в ожидании неизвестно чего. Может есть какой способ узнать, что все данные считаны, чтобы избежать этого ступора?
#Smith Используй какой-нибудь спец. символ, означающий, что достигнут конец данных. Пример: if (line.IndexOf("\0") != -1) { break; }
Вопрос, чем отличаются эти два куска кода: Code: char *query=(char*)malloc(2048) Code: char *query = new char[2048]; Если я правильно понял, то первый вариант это "С", а второй "С++"? Просто в VS2008 C++ работают оба. Если так, то наверно стоит пользоваться вторый, С++'ым вариантом? И сразу еще вопрос. В эту переменную я собераюсь засунуть HTTP GET запрос. Как лучше сделать: Code: strcpy(query,"GET /"); strcat(query,http_path); strcat(query," HTTP/1.0\nHost: "); strcat(query, BLA_BLA); ... Code: query = "GET /"; query += http_path; query += "HTTP/1.1\nHost: "); query += BLA_BLA; ... Спасибо. P.S. Возможно вопрос неадекватен, извените меня тогда. Пересаживаюсь с Delphi на C++, в голове каша.
Оператор new относится к C++. Если работаешь с C++, то для строк лучше использовать класс std::string. Тогда, для конкатенации строк можно использовать оператор +=. P.S. Лучше тебе почитать книги, так как это основы и их нужно хорошо понимать.
Я и читаю, на ходу пробую сразу что-то делать. Так что, в голове каша. То есть правильно следующий код: Code: std::string quare; query = "GET /"; query += http_path; query += "HTTP/1.1\nHost: "); query += BLA_BLA; ...
Странно. Если ты читаешь книгу по С++, то там не должно быть таких вещей, как - (char*)malloc(2048) или strcpy. Скорее, просто удобнее и лучше. Пример: Code: ... using namespace std; ... string name("john"); string str("Hi "); str += "mister"; str += name;
как получить возвращаемое функцией значение [CPP] есть некая функция: char* RoomGetText( int A, int B ); вопрос, как правильно списвоить возвращаемое ею значение в переменную типа char* пробовал strcpy но ругается на соответствие типов, руками так побрутфорсил к явному приведению типа не помогло, либо эксепшен либо ругаетс что пишу бред типа "указатель совокупляете с сылкой"
спасибо а не подскажите еще как эту переменную правильно объявить, потому как работает но не выдодит, хотя если выводить непосредственно RoomGetText( int A, int B ); а если через промежуточную переменную то нет. Может под нее память как то выделять, хотя я и так ей четко 256 прописал но не выводит(. на данный момент объявлена переменная глобально: char* text[256];