for Robot Artificial Inteligence

23. Fstream(3)

|

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