سؤال

وأستخدمه 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top