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

Взгляните пожалуйста - C++

Восстановить пароль Регистрация
 
stzer
38 / 59 / 17
Регистрация: 26.10.2013
Сообщений: 172
Завершенные тесты: 2
30.10.2013, 18:58     Взгляните пожалуйста #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
 
using namespace std;
 
int main()
{
    ifstream in("text.txt");
        vector<int> v;
        int x;
        while(in>>x,!in.eof())
            v.push_back(x);
        for(vector<int>::iterator i=v.begin(); i!=v.end();++i)
            cout<<*i<<endl;
        system("pause");
        return 0;
}
Это функция, считывает int'ы с текстового файла, записывает в вектор, и выводит в том же порядке, как и в файле.
Объясните, почему в while() между in>>x и !in.eof() стоит запятая. Это тоже самое, что и &&?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 18:58     Взгляните пожалуйста
Посмотрите здесь:

СРОЧНО! ПОЖАЛУЙСТА C++
Контрольная, пожалуйста!!! C++
C++ Решите пожалуйста
Взгляните на задачку С++ C++
C++ Подскажите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
30.10.2013, 19:29     Взгляните пожалуйста #2
stzer, интересно. И что, программа корректно работает?
stzer
38 / 59 / 17
Регистрация: 26.10.2013
Сообщений: 172
Завершенные тесты: 2
30.10.2013, 19:44  [ТС]     Взгляните пожалуйста #3
Цитата Сообщение от Folko Посмотреть сообщение
stzer, интересно. И что, программа корректно работает?
абсолютно
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
30.10.2013, 19:51     Взгляните пожалуйста #4
Цитата Сообщение от Folko Посмотреть сообщение
И что, программа корректно работает?
А почему нет? Разве что может вылететь ошибка потока в самом конце
Цитата Сообщение от stzer Посмотреть сообщение
Объясните, почему в while() между in>>x и !in.eof() стоит запятая. Это тоже самое, что и &&?
Нет, не то же самое. Оператор "запятая" - это последовательное выполнение слева направо. Результатом будет самое правое выражение. То есть Сначала считывается число, а затем проверяется EOF.
Но лучше так не пишите - некрасиво, некомпактно, нечитабельно.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
30.10.2013, 19:52     Взгляните пожалуйста #5
gromo, я просто не знал про запятую)
Yandex
Объявления
30.10.2013, 19:52     Взгляните пожалуйста
Ответ Создать тему
Опции темы

Текущее время: 06:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru