23. Fstream(3)
23 Sep 2019 | C++
Peek
- 그 다음 문자를 살짝 훔쳐본다(즉, 스트림에서 빼오지는 않고 읽기만 한다)따라서 get처럼 스트림에서 문자를 빼내는 것이 아니라, 그 문자는 그냥 스트림에 남아있게 된다.
Example 1
#include <iostream>
//putback
using namespace std;
int main ()
{
char c = cin.peek();
if (c > '0' && c < '9')
{
int number;
cin >> number;
cout << "Number is: " << number << endl;
}
else
{
string txt;
cin >> txt;
cout << "Text is: " << txt << endl;
}
return 0;
}
return
Put
- 항상 파일은 리셋된다.
- ’.’<- 가 나올떄까지 계속 쓸 수 있다
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
/*
put(character to put on stream)
*/
string txt = "thistextisconnected";
for (int i = 0; i < txt.length(); i++)
{
cout.put(txt[i]).put(' ');
}
fstream file;
file.open("test.txt", ios::out | ios::binary);
if (file.is_open())
{
char c;
do
{
c = cin.get();
file.put(c);
}while(c!='.');
}
else
cout << "Nie udalo sie poprawnie otworzyc pliku" << endl;
return 0;
}
result
Put back
#include <iostream>
//putback
using namespace std;
int main ()
{
char c = cin.get();
cin.putback(c);
if (c > '0' && c < '9')
{
int number;
cin >> number;
cout << "Number is: " << number << endl;
}
else
{
string txt;
cin >> txt;
cout << "Text is: " << txt << endl;
}
return 0;
}
result
Write writing bytes to file
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
/*
write
*/
fstream file;
file.open("sample.txt", ios::out | ios::binary);
if (file.is_open())
{
char sample[] = "hello, this is sample file";
cout << sizeof(sample) << endl;
file.write(sample, sizeof(sample)-1 ); // '-1' because when we use write function, it have one more character end of word " " <- this one
// so we need to delete it and it is working fine
}
else
cout << "I couldnt open the file" << endl;
return 0;
}
Peek
- 그 다음 문자를 살짝 훔쳐본다(즉, 스트림에서 빼오지는 않고 읽기만 한다)따라서 get처럼 스트림에서 문자를 빼내는 것이 아니라, 그 문자는 그냥 스트림에 남아있게 된다.
Example 1
#include <iostream>
//putback
using namespace std;
int main ()
{
char c = cin.peek();
if (c > '0' && c < '9')
{
int number;
cin >> number;
cout << "Number is: " << number << endl;
}
else
{
string txt;
cin >> txt;
cout << "Text is: " << txt << endl;
}
return 0;
}
return
Put
- 항상 파일은 리셋된다.
- ’.’<- 가 나올떄까지 계속 쓸 수 있다
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
/*
put(character to put on stream)
*/
string txt = "thistextisconnected";
for (int i = 0; i < txt.length(); i++)
{
cout.put(txt[i]).put(' ');
}
fstream file;
file.open("test.txt", ios::out | ios::binary);
if (file.is_open())
{
char c;
do
{
c = cin.get();
file.put(c);
}while(c!='.');
}
else
cout << "Nie udalo sie poprawnie otworzyc pliku" << endl;
return 0;
}
result
Put back
#include <iostream>
//putback
using namespace std;
int main ()
{
char c = cin.get();
cin.putback(c);
if (c > '0' && c < '9')
{
int number;
cin >> number;
cout << "Number is: " << number << endl;
}
else
{
string txt;
cin >> txt;
cout << "Text is: " << txt << endl;
}
return 0;
}
result
Write writing bytes to file
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
/*
write
*/
fstream file;
file.open("sample.txt", ios::out | ios::binary);
if (file.is_open())
{
char sample[] = "hello, this is sample file";
cout << sizeof(sample) << endl;
file.write(sample, sizeof(sample)-1 ); // '-1' because when we use write function, it have one more character end of word " " <- this one
// so we need to delete it and it is working fine
}
else
cout << "I couldnt open the file" << endl;
return 0;
}
Comments