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

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

Войти
Регистрация
Восстановить пароль
 
 
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
#1

Подскажите как прекратить чтение из файла? - C++

28.07.2013, 16:07. Просмотров 1020. Ответов 27
Метки нет (Все метки)

Есть программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    ifstream cin("in.txt");
    int name;
    while(true)
    {
    }
    // Закрываем фаил, прекращает чтение из него
}
Как сделать, что-бы после выполнения цикла while() закрыть фаил???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 16:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите как прекратить чтение из файла? (C++):

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и...

Как прекратить работу программы? - C++
# include &lt;iostream&gt; # include &lt;locale&gt; using namespace std; int main () { setlocale (LC_ALL,&quot;Russian&quot;); int number; ...

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

Как прекратить ввод данных из консоли - C++
Программа должна считывать пары точек (x, y), но заранее не известно количество пар. Как сделать так, чтобы ввод прекратился после ввода...

Как по клавише прекратить (приостановить) запись в файл? - C++
Консольное приложение VC6. Есть функция записи в файл. Данные пишутся в цикле: while(i &lt; file_size) { fputs(buffer,file_out); ...

Чтение файла как hex - C++
Как открыть файл в 16ричном виде? Насколько я понял это средствами только с++ невозможно ... или всё же возможно? Вообще хотелось бы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gray_fox
What a waste!
1506 / 1209 / 68
Регистрация: 21.04.2012
Сообщений: 2,544
Завершенные тесты: 3
29.07.2013, 18:28 #16
Цитата Сообщение от Nikko12 Посмотреть сообщение
P.S.S. А какой конфлик имен может возникнуть??? Можно пример пожалуйста??
Например
C++
1
2
3
4
5
6
#include <iostream>
#include <fstream>
 
using std::cin;
 
std::ifstream cin;
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
29.07.2013, 18:33  [ТС] #17
Bend3r, Спасибо за ответ.

Добавлено через 54 секунды
Цитата Сообщение от gray_fox Посмотреть сообщение
1
C++
1
2
3
4
#include <iostream>
#include <fstream>
using std::cin;
std::ifstream cin;
gray_fox, А разве компилятор не выдаст ошибку?
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 18:38 #18
Цитата Сообщение от Nikko12 Посмотреть сообщение
Из названия потока понятно, что он делает, считывает или выводит на экран?
У вас он считывает с консоли? Еще раз: cin и cout это потоки чтения и записи, которые создаются в каждой программе автоматически для чтения и записи из стандартного потока чтения и записи (по умолчанию - консоль). cin - сокращение: консольный ввод, cout - консольный вывод. У вас чтение не из консоли, а из файла.

Добавлено через 59 секунд
Цитата Сообщение от Nikko12 Посмотреть сообщение
В книжках по С++ везде файловые потоки называются cin и cout и пока не где не встречал, что их так нельзя называть.
Название книги и страницу.
gray_fox
What a waste!
1506 / 1209 / 68
Регистрация: 21.04.2012
Сообщений: 2,544
Завершенные тесты: 3
29.07.2013, 18:38 #19
Цитата Сообщение от Nikko12 Посмотреть сообщение
gray_fox, А разве компилтор не выдаст ошибку?
Выдаст, как раз потому что "конфликт имён".
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
29.07.2013, 19:03  [ТС] #20
Цитата Сообщение от alsav22 Посмотреть сообщение
В книжках по С++ везде файловые потоки называются cin и cout и пока не где не встречал, что их так нельзя называть.
Название книги и страницу.
Я говорю, что негде не встречал, что файловые потоки так нельзя называть. Хотя сейчас обратил внимание, что когда происходит чтение из файла, то поток не называется cin...
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
У вас он считывает с консоли? Еще раз: cin и cout это потоки чтения и записи, которые создаются в каждой программе автоматически для чтения и записи из стандартного потока чтения и записи (по умолчанию - консоль). cin - сокращение: консольный ввод, cout - консольный вывод. У вас чтение не из консоли, а из файла.
Да, у меня он просто считывает из файла, пока не вижу в этом проблемы....Что в этом такого страшного???

Добавлено через 1 минуту
Цитата Сообщение от gray_fox Посмотреть сообщение
Сообщение от Nikko12
gray_fox, А разве компилтор не выдаст ошибку?
Выдаст, как раз потому что "конфликт имён".
Нет, у меня он пишет: 1.cpp:3: error: expected namespace-name before ';' token
1.cpp:3: error: `<type error>' is not a namespace

Добавлено через 1 минуту
gray_fox, P.S. И если не скомпилируется из-за конфликта имен, если я правильно понял, так почему нельзя давать такие имена????
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 19:15 #21
Цитата Сообщение от Nikko12 Посмотреть сообщение
Да, у меня он просто считывает из файла, пока не вижу в этом проблемы....Что в этом такого страшного???
Дело не в том что он делает, а в его названии. До сих пор ещё непонятно?
Цитата Сообщение от Nikko12 Посмотреть сообщение
Хотя сейчас обратил внимание, что когда происходит чтение из файла, то поток не называется cin...

Не по теме:

Наконец-то...



Добавлено через 4 минуты
Цитата Сообщение от Nikko12 Посмотреть сообщение
так почему нельзя давать такие имена
Есть разница между нельзя и ненужно. Никто не запрещает, создавайте с такими именами, почему ненужно - читайте выше.
gray_fox
What a waste!
1506 / 1209 / 68
Регистрация: 21.04.2012
Сообщений: 2,544
Завершенные тесты: 3
29.07.2013, 19:21 #22
Цитата Сообщение от Nikko12 Посмотреть сообщение
gray_fox, P.S. И если не скомпилируется из-за конфликта имен, если я правильно понял, так почему нельзя давать такие имена????
Да можно давать такие имена. Ты просил пример конфликта имён, я привёл...
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
29.07.2013, 23:51  [ТС] #23
alsav22, gray_fox, Благодраю за помощь, надеюсь скоро более конкретно разберусь с этой проблемой. Желательно сталкнутся с ней лицом к лицу.
Second
79 / 80 / 1
Регистрация: 10.08.2011
Сообщений: 665
29.07.2013, 23:57 #24
Цитата Сообщение от alsav22 Посмотреть сообщение
cin и cout это потоки чтения и записи, которые создаются в каждой программе автоматически для чтения и записи из стандартного потока чтения и записи (по умолчанию - консоль). cin - сокращение: консольный ввод, cout - консольный вывод.

заквотил и зажирил ТСу на заметку, если не понимаете что Вам пытаются донести, Вам необходимо поупражняться.
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
30.07.2013, 06:52  [ТС] #25
Second, Понимаю, но когда сталкнусь с этой проблемой на практике и разберусь с ней сам, вот тогда действильно пойму почему все этого так боятся.

Добавлено через 5 минут
Цитата Сообщение от Second Посмотреть сообщение
если не понимаете что Вам пытаются донести, Вам необходимо поупражняться.
Боюсь моих знаний не хватит, что-бы вызвать неординарную ситуацию с потоками
P.S. Только если кто-то предложит рабочую программу, где действительно эта проблема приводит к ошибке. Что бы наглядно было видно что в этом не так.
Somebody
2787 / 1601 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
30.07.2013, 11:29 #26
Цитата Сообщение от alsav22 Посмотреть сообщение
cin - сокращение: консольный ввод, cout - консольный вывод. У вас чтение не из консоли, а из файла.
Страуструп так не думает...
http://www.stroustrup.com/bs_faq2.html#cout
"cout" is pronounced "see-out". The "c" stands for "character" because iostreams map values to and from byte (char) representations.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2013, 16:08 #27
Цитата Сообщение от Somebody Посмотреть сообщение
Страуструп так не думает...
http://www.stroustrup.com/bs_faq2.html#cout
Согласен, пускай так, но это не меняет сути:
cin и cout это потоки чтения и записи, которые создаются в каждой программе автоматически для чтения и записи из стандартного потока чтения и записи (по умолчанию - консоль).
Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
30.07.2013, 18:09  [ТС] #28
alsav22, Спасибо, что указали мне на мою ошибку с потоками. Если увидите у меня еще огрехи в коде, пиши не стесняйтесь, буду очень признателен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 18:09
Привет! Вот еще темы с ответами:

как сделать чтение из файла - C++
алгоритм дейкстры, нужно чтобы пользователь не забивал количество вершин, веса, и количество ребер, а программа читала это все с файла TXT...

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

Чтение файла, как прочитать пробел? - C++
Вопрос в том как прочитать пробел в файле? Пробовал условием else if но видимо cin как то не так с этим работает. На консоль все без...

Переделать в коде чтение из файла в чтение с клавиатуры - C++
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл должен начинаться со слова, между...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.07.2013, 18:09
Ответ Создать тему
Опции темы

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