#1 27.10.11 18:04
странное поведение ofstream и ifstream
для начала запускаем вот такую простенькую программку:
#include "stdafx.h"
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ofstream of("of.txt");
for ( int i = 0; i < 256; ++i )
{
of << (char)i;
};
of.close();
return 0;
}
и на выходе получим файл of.txt в котором будет следующее:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя
а теперь запустим вот такую программку:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("of.txt");
ofstream of("in.txt");
char ch;
for ( int i = 0; i < 256; ++i )
{
in >> ch;
of << ch;
cout << ch;
};
of.close();
in.close();
system("pause");
return 0;
}
и получим на экране и в выходном файле какую-то фигню.
вопрос: почему после символа с номером 26 из файла уже считывается какая-то чушь и как от этого избавиться?
Offline

