У меня есть программа, которая выводит огромный массив целых чисел в stdout, каждое целое число в строке. Пример:Сканирование двух чисел за раз от stdout
103
104
105
107
мне нужно написать еще одну программу, которая считывает в этом массиве и заполняет пространство, где число не приращение 1 из предыдущего числа. Единственное отличие между номерами будет 2 (105,107), что упрощает его работу.
Это мой код, чтобы сделать эту логику:
printf("d",num1);
if ((num2-num1) != 1)
numbetween = num1 + 1;
printf("%d", numbetween);
printf("%d", num2);
else(
printf("%d",num2);
)
Так выход этой программы теперь будет:
103
104
105
106
107
Мой вопрос читает цифры. Я знаю, что могу делать while (scanf("%hd", &num) != EOF)
, чтобы читать все строки по одному. Но чтобы сделать логику, которую я хочу, мне нужно будет читать по две строки за раз и делать с ними вычисления, и я не знаю, как это сделать.
Как насчет выполнения двух вызовов 'scanf()' на каждой итерации цикла? –
Вам не нужно читать два номера на каждой итерации. Вы * начинаете *, читая два числа. После этого алгоритм считывает только одно число за раз, повышая то, что 'num2' предшествующей итерации должно было быть« num1 »первым, заправляя' num2' из stdin и т. Д. Завершив, выведя 'num2'. – WhozCraig
@WhozCraig Я был идиотом. Это гораздо более простой способ сделать это.Возьмите первое число в файле, возьмите последний номер, цикл, начинающийся с первого числа, до тех пор, пока вы не достигнете последнего номера и не выведете счетчик циклов каждый раз. Но теперь вопрос в том, как я могу взять первое и последнее числа из stdout? – user3011338