Чтение нескольких значений в C с помощью scanf - PullRequest
0 голосов
/ 12 июля 2011

Существует еще один поток, объясняющий способ получения нескольких значений с помощью scanf (). Я попытался, однако, я получил правильное значение для первой переменной и ненужные значения для оставшихся двух переменных. Когда я использовал отдельные операторы scanf, все работало нормально. Я использую RH Linux 5. Версия ядра - 2.6.18-238. 4.1.2

например. если я делаю scanf("%d %d %d",&n,&p1,&p2), то n читается нормально. Но p1 назначается 32767, а p2 назначается другой номер даже после того, как я прочитал значения. Но в соответствии с темой на SO, это должно работать. Так что я делаю не так?

1 Ответ

2 голосов
/ 12 июля 2011

Вы не говорите, что это за три переменные. Они должны быть int.

На моем компьютере работает следующий код:

#include <stdio.h>

int main()
{
  int n, p1, p2;
  scanf("%d %d %d", &n, &p1, &p2);
  printf("%d %d %d\n", n, p1, p2);
  return 0;
}

Вот вывод:

$ gcc x.c
$ ./a.out 
10 3 5
10 3 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...