AnsiString.с этим я разобрался, всем спасибо.
другой вопрос: чем AnsiString отличается от string? Ну ясно, что это разные классы с разными методами. какой из классов "более полный" (имеет боьше ф-ий), а с каком удобнее работать? и какой файл нужно включить инклюдом, чтобы объявить AnsiString?
//a.h
extern char abc [64];
long makeTable(void);
//(без тел ф-ий)
//a.cpp
#include "a.h"//это тож нужно
#include <string.h>
#include <conio.h>
#include <stdio.h>
long makeTable(void){return 0;}//Тело ф-ции то тож надо описать.
char abc [64];
//unit1.cpp
#include "a.h"
//....
makeTable();
//==================================================vector<string> coll;
copy(
istream_iterator<string>(cin), istream_iterator<string>(),
back_inserter(coll));
sort(coll.begin(), coll.end());
unique_copy( coll.begin(), coll.end(), ostream_iterator<string> ([FONT=Arial,Arial]cout[/FONT], "[FONT=Arial,Arial]\n[/FONT]"));
istream_iterator считывает до конца файлаПожалуйста помогите.
Подскажите, как поставить условие на конечность считывания из istream в vector, т.е. чтоб считывалось до определенного момента, а не все время.
Может надо использовать функцию getline?istream_iterator считывает до конца файла
или ctrl-z enter при чтении с клавиатуры
если нужно что-то другое то нужно писать без него, явно циклом
ending iterator == конец файлаВ F1 действительно написано, про чтение из файла.
// Collect values from cin until end of file
Но там также написано, что надо обратить внимание на конструктор по умолчанию, чтобы получить конец итератора.
// Note use of default constructor to get ending iterator
Пожалуйста, подскажите какие параметры надо передать конструктору, чтобы было условие, заканчивающее чтение с экрана.
string s;
while(getline(cin,s))
coll.push_back(s);
string s;
while(getline(cin,s) && s!="END")
coll.push_back(s);
Помогите пожалуста со следующей задачкой
Как заполнить STL контейнер(например вектор очередь лист) 20ю числами из файла отсортировать убрать дубликаты и вывести
Главное условие: БЕЗ циклов
Можно не писать код меня в принципе интересует сам алгоритм а именно как заполнить и вывести без циклов(варианты последовательного прописывания каждого элемента не устраивают)
Заранее спасибо
#include <iostream.h>
#include <list>
#include <iterator>
//========================================
coll.sort();//сортировка
coll.unique();//удаление дубликатов
copy(coll.begin(),coll.end(),ostream_iterator<int> (cout," "));//вывод
#include <iostream>
#include <string.h>
#include <list>
#include <iterator>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream infile ("input.txt");
void Print( int& coord)
{
string temp;
getline(infile,temp,' ');
coord=atoi(temp.c_str());
};
//=============================================
int main( )
{ list<int> coll;
coll.resize(20);
for_each(coll.begin(), coll.end(),Print);
coll.sort();
coll.unique();
copy(coll.begin(),coll.end(),ostream_iterator<int> (cout," "));
cin.get();
return 0;
}
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
//1
double income( double at_start, double per_cent, double period )
{
double result = 0;
per_cent = (double) (per_cent / 100);
result = pow( (1 + (double)(per_cent/365) ), period )*at_start - at_start;
return result;
}
//2
double _calculate_function(double arg)
{
double result = 0;
if ( arg <2 )
result = -pow(arg,2) - 2*arg - 6;
if (( arg >= 2) && ( arg !=3 ))
result = 1/(-pow(arg,2) + 2*arg + 3);
if ( arg == 3 )
cout << "function not define: null below of fraction!?" << endl;
return result;
}
//3
void _give_me_square(void)
{
int quantity = 0;
int number = 1;
while ( quantity <7 )//ëèøü ñåìü ÷èñåë íóæíî
{
if ( number % 2 != 0 )//íå÷¸òíîå ëè?
{
cout << pow(number,2) << endl;//âûâîäèì êâàäðàòû
quantity++;//íàøëè î÷åðåäíîå ÷èñëî
};
number++;//ïðîâåðÿåì ñëåäóþùåå ïî ñ÷¸òó ÷ìñëî
}
cout << endl;
}
//4
int search_quantity(double arr[], int array_length , double wanna_find)
{
int quantity = 0;
for ( int i =0; i< array_length;i++)//ïðîññìàòðèâàåì ìàññèâ
if ( arr[i] == wanna_find)//åñëè ñîâïàëî ñ êàêèì òî ýëåìåíòîì ìàññèâà, òî
quantity++;//çíà÷èò íàøëè î÷åðåäíîå ñîâïàäåíèå
return quantity;
}
int main(int argc, char *argv[])
{
//1
cout << "write sum at start"<< endl;
double sum =0;
cin >> sum;
cout << "write percent"<< endl;
double per_cent =0;
cin >> per_cent;
cout << "write period"<< endl;
double period =0;
cin >> period;
double result_income = 0;
result_income = income ( sum, per_cent, period );
cout<<" result:"<< endl;
cout<< result_income << endl;
//2
cout <<endl<<" exercize 2 "<<endl;
cout << endl <<"write number for function" << endl;
double number = 0;
cin >> number;
double result = 0;
result = _calculate_function(number);
cout << endl << "result:" << endl;
cout << result <<endl;
//3
cout <<endl<<" exercize 3 "<<endl;
cout << "result:" << endl;
_give_me_square();
//4
cout <<endl<<" exercize 4 "<<endl;
cout << endl << "length of array" << endl;
int length = 0;
cin >> length;
double arr[length];
for ( int i=0; i<length ; i++)
{
cout << "write elemet of array"<< endl;
cin >> arr[i];
};
double searching_number = 0;
cout << "what number u wanna find?"<< endl;
cin >> searching_number;
double result2 =0;
result2 = search_quantity(arr, length, searching_number);
cout << endl << "result:" << endl;
cout << result2 << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Тогда уже скажите под какую среду сделать )))да не =)
это задачки для первого курса)) Самые простые)) и код примерно должен палучицца максимум строк на 30)
ЗЫ. если можно то сделайте их на языке С а не С++
//4
cout <<endl<<" exercize 4 "<<endl;
cout << endl << "length of array" << endl;
int length = 0;
cin >> length;
double arr[length];// [COLOR=Red]ЭТО ЧТО???[/COLOR]