PDA

View Full Version : سوال: دریافت رشته‌های ورودی بصورت multiple با read() در پاسکال



Cyletech
پنج شنبه 27 مهر 1391, 21:18 عصر
سلام،

کدی که در زیر براتون می‌نویسم بسیار خوب کاربر با وارد کردن اولین مقدار و Enter و وارد کردن دومین مقدار و باز Enter خروجی بهش نمایش داده میشه. اما اگر نوع داده integer رو به string تغییر بدم مثل قبل صحیح اجرا نخواهد شد؛ یعنی کاربر رشته خودش رو تایپ و Enter می‌کنه و خروجی بهش ناقص نمایش داده میشه. در حالی که باید به تعداد ورودی های تابع read() از کاربر ورودی بخواد.


program practise;

var input1,input2 : integer;

begin
readln(input1,input2);
writeln(input1,' ',input2);
end.

developing
شنبه 29 مهر 1391, 22:03 عصر
با سلام

من دستور شما را در دلفی xe2 کامپایل کردم هیچ مشکلی نداشت.
دستوری که نوشتید دو عدد را پشت سر هم در یک خط می خواند اگر دو عدد در یک خط(قبل از زدن اینتر) وارد نشوند کامپایلر به دنبال دومین عدد در خط بعد می گردد.
برخی از کامپایلرهای پاسکال با این موضوع مشکل دارند و در زمانی که یک نوع خاص را وارد می کنید (در اینجا integer) واکنش های نامعقولی نشان می دهند.
اگر شما بخواهید که اعداد با زدن اینتر از طرف کاربر خوانده شود بهتر است به صورت زیر هر عدد را در یک خط بخوانید:

readln(input1);
readln(input2);

فکر کنم با این روش مشکل شما حل شود