Блог пользователя vintage_Vlad_Makeev

Автор vintage_Vlad_Makeev, 11 лет назад, По-русски

Привет всем!

Я пишу интерактивную задачу в Полигоне.

Программа должна посылать интератору запросы вида "символ число" (через пробел).Для этого я написал следующее в коде интератора

char c= ouf.readChar();

int a = ouf.readInt();

И получаю wrong output format Expected integer, but "=" found

Потом подумал, что пробел тоже символ и написал так

char c= ouf.readChar();

char p=ouf.readChar();

int a = ouf.readInt();

Та же петрушка.В чем дело?

Спасибо!

UPD

Если поменять символ и число местами, то прокатывает

int  a = ouf.readInt();
ouf.nextChar();
char c= ouf.readChar();

А вот наоборот- никак(

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Попробуйте ouf.skipBlanks() — он пропускает все пробельные символы. Или вообще использовать ouf.readToken() вместо ouf.readChar() — он тут, вроде как, больше по смыслу подходит.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Не работает(

    Либо я что-то не то делаю, либо я не знаю что.

    Я писал так

    char c= ouf.readToken()[1];

    ouf.nextChar();

    int a = ouf.readInt();

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Все разобрался.

      string s=ouf.readString();

      char c=s[0];

      s=s.substr(2,100500);

      int a=atoi(s.c_str());

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +11 Проголосовать: не нравится

        Вообще, такому коду не место в интеракторе. В случае проблем с задачей жюри придётся читать этот код — в интересах автора, чтобы это оказалось как можно проще.

        Попробуйте всё-таки читать каждый запрос так:

        ouf.skipBlanks(); // пропускает все пробелы и переводы строк
        char c = ouf.readChar(); // читает следующий (уже не пробельный) символ
        int a = ouf.readInt(); // пропускает пробел и читает число
        

        У меня такой код, вставленный в случайный чекер, работает как задумывалось.

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

У тебя случайно не происходит считывание символа "\n"?