我正在编写一个程序,用户必须输入“是”或“否”值。以下是在收到消息{createPatient,PatientName}时将执行的代码。但该行不显示是/否和程序排序崩溃,因为如果被发送另一条消息Erlang如何接受字符串?
{createPatient, PatientName} ->
Pid = spawn(patient,newPatient,[PatientName]),
register(PatientName,Pid),
io:format("*--- New Patient with name - ~w~n", [PatientName]),
Result = io:read("Yes/No> "),
{_,Input} = Result,
if(Input==yes) ->
io:format("OK")
end,
loop(PatientRecords, DoctorPatientLinks, DoctorsOnline, CurrentPatientRequests, WaitingOfflineDoctorRequests);
执行时,行“与名新患者...”显示,那么的执行消息不会发生。请问有什么不同的方法来解决这个问题?
您可以发布'患者'代码和崩溃日志吗? – Isac
患者实际上被执行并且直到那一点它工作正常...在“新患者名称”显示之后,实际上并没有什么不寻常的事情发生......命令提示符号码将增加,并且事实上“甚至没有”提示甚至没有被写入......然后,无论我输入什么输入,它都会回声它回来...没有任何处理。 – ict1991
io:read用于读取erlang术语,因此您必须用点结束输入。虽然“是/否”信息应该打印到标准输出,但不知道为什么不是。你如何执行你的程序?直接从shell? – Isac