Я помогал однокласснику с его кодом и пробежал по нему. У меня были некоторые проблемы с scanf в прошлом, вероятно, из-за моего отсутствия опыта, но именно поэтому я здесь.Последовательные вызовы scanf
Итак, я заметил, что два последовательных вызова scanf или захват нескольких входных данных из одного вызова могут быть проблематичными. Рассмотрим следующее.
#include <stdio.h>
#include <stdlib.h>
void main(){
char input1, input2;
//In
fprintf(stdout,"\nInput1: ");
fscanf(stdin,"%d",&input1);
fprintf(stdout,"\nInput2: ");
fscanf(stdin, "%d", &input2);
//Out
fprintf(stdout,"\nInput1: %d Input2: %d\n",input1,input2);
}
Почему зсапЕ будет печатать на экране нужные значения input1 & input2 еще, когда я печатаю назад те же две переменные с Printf, второе значение (input2), кажется перезаписаны Input1?
Это выход.
Input1: 1
Input2: 0
Input1: 0 Input2: 0
Имеет ли это какое-либо отношение к буферу строки? Если да, может кто-нибудь объяснить это мне.
Благодарим вас.
Спасибо человеку. Ты делаешь доброе дело. Я имею дело с двумя вещами, хотя 1 и 0 выполняет логические ворота. Мне нужно только одно байтовое хранилище. – Mozzy
Предположим, что у вас есть куча из них, так что однобайтная или, возможно, четырехбайтная память делает реальную разницу, вы можете сканировать временный 'int', проверять результат, и если это нормально, то назначьте его к отдельной переменной 'char'. При выводе все, что вам нужно сделать, это нажать на 'int', если вы хотите использовать дескриптор поля'% d'. –
Я вижу, хорошая идея. Это не совсем важно, но мне нравится знать все мои варианты. – Mozzy