سؤال
وأستخدمه scanf () للحصول على مجموعة من [إينتس] من المستخدم. ولكن أود المستخدم لتوريد جميع [إينتس] 4 في وقت واحد بدلا من 4 promps مختلفة. أعرف أنني يمكن الحصول على قيمة واحدة عن طريق القيام:
scanf( "%i", &minx);
ولكن أود المستخدم لتكون قادرة على فعل شيء مثل:
Enter Four Ints: 123 234 345 456
هل من الممكن أن تفعل هذا؟
المحلول
ويمكنك القيام بذلك مع مكالمة واحدة، كما يلي:
scanf( "%i %i %i %i", &minx, &maxx, &miny, &maxy);
نصائح أخرى
نعم.
int minx, miny, maxx,maxy;
do {
printf("enter four integers: ");
} while (scanf("%d %d %d %d", &minx, &miny, &maxx, &maxy)!=4);
وحلقة هو فقط لإثبات أن scanf إرجاع عدد من الحقول قراءة بنجاح (أو EOF).
int a,b,c,d;
if(scanf("%d %d %d %d",&a,&b,&c,&d) == 4) {
//read the 4 integers
} else {
puts("Error. Please supply 4 integers");
}
ويمكن القيام بذلك، ولكن بعد أن المستخدم لديه لفصل الأرقام بمسافة:
#include "stdio.h"
int main()
{
int minx, x, y, z;
printf("Enter four ints: ");
scanf( "%i %i %i %i", &minx, &x, &y, &z);
printf("You wrote: %i %i %i %i", minx, x, y, z);
}
ومقبول للحصول على قيم متعددة مع scanf()
int r,m,v,i,e,k;
scanf("%d%d%d%d%d%d",&r,&m,&v,&i,&e,&k);
لا تنتمي إلى StackOverflow