С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение двух файлов одновременно! http://www.cyberforum.ru/cpp-beginners/thread362969.html
Здравствуйте! Подскажите, пожалуйста, как открыть одновременно два файла для чтения. Из первого файла записать данные в массив А, из второго в массив В. Заранее благодарен за помощь! Моя...
C++ Помогите с CharToOem и ещё с if and else Всем доброго дня. У меня вот такая вот проблема не могу разобраться по чему не работает русский язык, пишет что CharToOem невозможно преобразить параметр 1 из const*char и не могу понять почему пишет... http://www.cyberforum.ru/cpp-beginners/thread362962.html
программу для вычисления значения функции C++
Составить программу для вычисления значения функции z=x1+x2+x3 , где х1,х2,х3(на рисунке) ai, bi, ci – элементы массивов Вычисление xi выполняется в процедуре, а для вычисления факториала...
Написание генератора простых чисел C++
Составить программу-генератор простых чисел , в основу положить формулу 2х2+29 при 0≤ х ≤28
C++ Заданы радиус круга ... http://www.cyberforum.ru/cpp-beginners/thread362956.html
Заданы радиус круга, сторона квадрата , две смежные стороны прямоугольника и три стороны прямоугольника. Определить, какая фигура имеет большую площадь.
C++ Класс "Историческое событие" //Ввести класс ИСТОРИЧЕСКОЕ СОБЫТИЕ с полями ЧИСЛО, МЕСЯЦ, ГОД, СОБЫТИЕ. Составить и протестировать функцию //a)ввода исторического события; //b)вывода на экран списка исторических событий;... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489

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

08.10.2011, 11:38. Просмотров 1471. Ответов 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
как так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.