У меня есть следующая реализация считывания символьной матрицы и ее печать. Он отлично работает, но когда я даю ему матрицу, он ждет другого символа, а затем выводит матрицу должным образом. Как я могу исправить это, чтобы мне не нужно вводить другой символ?C: Логическая ошибка при вводе сканирования
Ввод пробы
3 4
0001
0110
1110
Пример вывода
0001
0110
1110
Мой код
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m; /* n, m - dimensions of matrix */
int i, j; /* i, j - iterators */
char **matrix; /* matrix - matrix input */
scanf ("%d %d\n", &n, &m);
matrix = (char **) malloc (sizeof (char *) * n);
for (i = 0; i < n; ++i)
{
matrix[i] = (char *) malloc (sizeof (char) * m);
}
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
scanf ("%c ", &matrix[i][j]);
}
}
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
printf ("%c", matrix[i][j]);
}
printf ("\n");
}
}
Спасибо заранее.
спасибо, что сработало –
, кстати, что пробегает перед% c? –
Это заставит scanf игнорировать любое количество пробелов (например, \ t, \ n, пробел и т. Д.). Если у вас есть * пробел * в формате stri ng после прочтения символа, тогда он будет читать символ для '% c', но затем будет игнорировать все пробелы. –