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

Автор heyyolol, история, 5 лет назад, По-английски

Recently I tried using getchar to take in char input (c++), the sample works fine on my compiler , but got idleness limit exceeded on judge, I tried the code in custom invocation, and it turns out getchar was reading random characters lol. My code is something like

for(int i=0;i<n;++i) for(int j=0;j<n;++j) while(grid[i][j]!='.'&&grid[i][j]!='#') grid[i][j]=getchar()

Does anyone know how to fix this problem? Thank you!! :)

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

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

Why not use cin or scanf?

»
5 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится
scanf("%d %d\n", &n, &m);
for(int i = 1; i <= n; ++i) {
    for(int j = 1; j <= m; ++j) {
        a[i][j] = getchar();
    }
    tmp = getchar();
}
  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    But isn't this the same as the code I provided? Since the while grid[i][j] != expected input I will do another getchar? Thanks.