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

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

Привет всем!

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

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

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
  • Проголосовать: не нравится

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

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

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

    Не работает(

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

    Я писал так

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

    ouf.nextChar();

    int a = ouf.readInt();

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

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

      string s=ouf.readString();

      char c=s[0];

      s=s.substr(2,100500);

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

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

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

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

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

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

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

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