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

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
08.10.2011, 11:38     как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? #1
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и выполним такой код:

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
#include <fstream>
 
using namespace std;
 
 
int main () {
 
 //ОТкроем первый файл на чтение
 ifstream in ("f_0.txt");
 
 //Проверим, нормально ли открыли
 printf ("in.good()== %d\n", in.good());
 
 //Считаем из него в строку
 char A [10];
 in >> &A[0] ;
 
//ПРоверим, чё мы запихали в буфер 
for (int i= 0; i< 3; i++) {
  printf ("%c", A[i]);
 }
 printf ("\n");
 
 
 //Закроем
 in. close ();
 
 //Снова откроем
 in.open ("f_1.txt");
 
 //И снова проверим, результат негативный!
 printf ("in.good()== %d\n", in.good());
 getchar ();
 return 0;
}
и получим, что результат негативный
C++
1
2
3
in.good()== 1
123
in.good()== 0
Так, на второе открытие файла влияет КОРРЕКТНО работающий оператор >>; Но каким образом?
(А для проверки этого утверждения закомментим это:
// //Считаем из него в строку
// char A [10];
// in >> &A[0] ;
//
// for (int i= 0; i< 3; i++) {
// printf ("%c", A[i]);
// }
// printf ("\n");

И получаем

C++
1
2
in.good()== 1
in.good()== 1
как так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 11:38     как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Посмотрите здесь:

Открытие текстового файла как поток C++
Чтение из текстового файла C++
Чтение из текстового файла C++
Чтение текстового файла C++
Чтение из текстового файла C++
C++ Чтение из текстового файла
Открытие текстового файла C++
C++ Чтение из файла - программа корректно работает лишь раз

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.10.2011, 13:52     как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? #2
может вы eof достигли и флаг остался.
clear надо сделать.
Yandex
Объявления
08.10.2011, 13:52     как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла?
Ответ Создать тему
Опции темы

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