[JSP ] readline時會停住的問題…
<%
if(solStateNum == 0){
String WA_check[] = {"cmd","/c","D:\\"+solNumber[1]+".exe"};
try{
Process pro = runtime.exec(WA_check);
BufferedWriter WA_In = new BufferedWriter(
new OutputStreamWriter(pro.getOutputStream()));
BufferedReader WA_Out = new BufferedReader(
new InputStreamReader(pro.getInputStream()));
FileWriter errorWriter = new FileWriter(
"D:\\"+solNumber[1]+".txt",true);
%>
<sql:query var="test">
Select * From test_point Where qNum = ?
<sql:param value="${param.qNum}"/>
</sql:query>
<c:forEach var="test" items="${test.rows}">
<c:set var="input" scope="request" value="${test.testInput}"/>
<c:set var="output" scope="request" value="${test.testOutput}"/>
<%
String input = (String)request.getAttribute("input");
String output = (String)request.getAttribute("output");
WA_In.write(input);
WA_In.flush();
if((line = WA_Out.readLine()) != null){
if(!line.equals(output)){ //輸出資料比對
errorWriter.write("Your answer is : "+line);
errorWriter.write("The correct answer is : "
+output);
solStateNum = 3;
}
}
%>
</c:forEach>
<%
errorWriter.close();
WA_In.close();
WA_Out.close();
pro.destroy();
}
catch (Exception e) {
e.printStackTrace();
runtime.exit(0);
}
}
%>
這是我的部份程式
目的是要做由gcc編譯完後得到的exe檔,開啟並輸入值,
然後再比對輸出是否和正確答案一樣
編譯的c程式如下
#include<stdio.h>
int main() {
char s[9999];
while( scanf("%s",s)!=EOF ) {
printf("hello, %s\n",s);
}
return 0;
}
我是用if(true)return;的方式得知在readline時停住了(就是網頁跑很久都沒有結果)
卻一直不明白為何…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.125.57.131
→
07/19 15:19, , 1F
07/19 15:19, 1F
→
07/19 15:21, , 2F
07/19 15:21, 2F
→
07/20 10:48, , 3F
07/20 10:48, 3F
→
07/20 10:52, , 4F
07/20 10:52, 4F
→
07/20 14:31, , 5F
07/20 14:31, 5F
→
07/20 14:32, , 6F
07/20 14:32, 6F
→
07/20 17:46, , 7F
07/20 17:46, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):