Ввод и вывод файлов через потоки.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by EST a1ien, 21 May 2008.

  1. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    вобщем есть такой код.

    Code:
    #include <iostream>
    #include <fstream>
    using namespace std;
    int main()
    {
    char name[32];    
    fstream os("123.txt");
        os<<"asdlkalskdjkjaljdlk";
        os>>name;
        cout<<name;
    
    
    return 1;
    }

    Проблема в том, что он не считывает строчку которую вывел в файл.
    Тоесть записать то он записал а вот выводить не хочет.

    PS юзать fopen и иже с ним не предлагать нужны именно потоки.
     
  2. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Ну, во-первых, ты уверен, что он записал, я бы юзал ofstream.
    а, во-вторых: даже если и записал - поле записи указатель в файле сместится на длину строки, то есть прочитаешь ты уже пустую строку - надо вернуть указатель в начало.
     
    2 people like this.
  3. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    Блин я дебил. забыл про то что смещается указатель. ))) Спасибо!
    Теперь все ок))
     
  4. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    Ну и еще сразу маленький вопрос в догонку.
    Есть перегруженный оператор << и >>
    Дак вот как узнать какой поток ему передали. файловый или стандартный.

    PS только через typeid? или както еще по другому можно? Или typуid тоже не прокатит?