Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AnreyKazakov
Заблокирован
#1

Можно ли продолжить считывать в поток после ^Z ? - C++

09.09.2012, 23:25. Просмотров 347. Ответов 1
Метки нет (Все метки)

Код конечно большой, но зато наглядный , прямо по заданию. Есть один минус планировал, чтобы считывал два вектора в cin, через getline. Первый читает, жмем Ctrl+Z и во второй while уже не заходит. Вроде условие даже поставил (или если к==0) , а к=0; перед этим условием определяется. Но все равно не заходит, даже на одну итерацию не хочет...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
int main(){
    using std::cout;
    using std::endl;
    using std::string;
    using std::vector;
    using std::getline;
    using std::cin;
    vector<string> vec;
    vector<string> ve2;
    string line,word;
    while(getline(cin,line)){ /*читаем первый вектор*/
        for(string::iterator iter=line.begin();iter!=line.end();++iter){
            if(*iter==' '){if(word!=""){vec.push_back(word);word="";}}else{
                word+=*iter;}
            }
            if(word!="")vec.push_back(word);
            word="";
        }
    int k=0;
    string line2;  /*здесь вроде как второй должны начинать считывать но увы*/
    while((getline(cin,line2))||(k==0)){ /*не выполняется ни при каких условиях =(*/
        k=1;
        cout<<"In while 2";
        for(string::iterator iter=line2.begin();iter!=line2.end();++iter){
            if(*iter==' '){if(word!=""){ve2.push_back(word);word="";}}else{
                word+=*iter;}
            }
            if(word!="")ve2.push_back(word);
            word="";
        }   
    for(vector<string>::iterator iter=vec.begin();iter!=vec.end();++iter)
    cout<<*iter<<" ";
    cout<<endl;
    for(vector<string>::iterator iter=ve2.begin();iter!=ve2.end();++iter)
    cout<<*iter<<" ";
    cout<<endl;
    if(vec==ve2){cout<<"vector1 and vector2 is eqality";}else{cout<<"vector 1 and vector2 is NOT eqality";}
    cout<<endl;
    return 0;
    }
В чем фокус???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 23:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли продолжить считывать в поток после ^Z ? (C++):

Сведения о машине можно считывать/записывать в файл - C++
Помогите пожалуйста, программа выполняет два действия. Если 1 - в файл записывается марка машины, вес, номер (а000аа). Если 2 -...

Программа закрывается после решения первого уравнения. Как продолжить ее выполнение? - C++
Здравствуйте форумчани! Нужна ваша помощь... Задача простая, начал изучать С++ не так давно, но хз как реализовать, вообщем суть: ...

Как можно считывать инфу с файла в виде массива строк? - C++
Возникла проблема в написании программы, суть в том что я ввожу инфу в файл, все норм записует... а когда считую ее назад получается...

Можно ли считывать поля класса из двоичного файла одним fread - C++
Можно ли считывать поля класса из двоичного файла одним fread? fread(this, sizeof(*this), 1, myFile); Слышал, что компиляторы по...

Как можно считывать из строки (std::string или char*) данные при помощи cin - C++
Как можно считывать из строки (std::string или char*) данные при помощи cin (или может есть какой-нибудь поток-обертка?), как sscanf из...

Можно ли перевернуть поток - C++
например условно так string S=&quot;раз два три&quot;; stringstream ss; ss&lt;&lt;S; /*переворот ss*/ ss&gt;&gt;S cout&lt;&lt;S; //три два раз именно...

1
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
09.09.2012, 23:32 #2
При вводе ^Z ( это символ конца файла в Win ), устанавливается флаг eof в потоке. Просто напишите после конца ввода
C++
1
std::cin.clear();
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 23:32
Привет! Вот еще темы с ответами:

Можно ли в DLL создать поток? - C++
Мне необходимо создать DLL, в котором был бы отдельный поток Windows. Однако, как выяснилось, это не так просто как в случае с приложением....

Как можно представить себе поток? - C++
Как можно представить себе потоки в С++? В книге конечно разъясняют, но ориентируются видимо не на таких гуманитариев, как я. ...

Не очищается поток после cin.clear() - C++
Собственно есть программа записывающая данные в файл и считывающая их оттудова со всеми сопутствующими функциями (новая запись, обновление...

Можно ли продолжить выполнение макроса после ввода данных в UserForm? - VBA
Суть такая. Выполняется макрос, но во воремя его выполнения нужно ввести некий комментарий, сохранить его в переменной для использования в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru