被测试端
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
input := bufio.NewScanner(os.Stdin)
fmt.Println("999")
for input.Scan() {
line := input.Text()
if line == "exit" {
fmt.Println("结束")
break
}
if line == "888888888888"{
fmt.Println("99999999999999999999")
}
fmt.Println()
}
}
测试端
package main
import (
"bufio"
"fmt"
"io"
"os/exec"
"strings"
)
func main(){
cmd0 := exec.Command("F:\\桌面\\go_frame_\\cmd_close\\Test\\test.exe")
stdout0 , err := cmd0.StdoutPipe()
Stdin0 , err := cmd0.StdinPipe()
if err != nil {
fmt.Println(err)
return
}
if err := cmd0.Start(); err != nil {
fmt.Println(err)
return
}
useBufferIO := false
if !useBufferIO {
for {
tempoutput := make([]byte, 256)
n, err := stdout0.Read(tempoutput)
if err != nil {
if err == io.EOF {
break
} else {
fmt.Println(err)
return
}
}
if n > 0 {
if strings.ReplaceAll(string(tempoutput[:n]),"\n","") == "999"{
Stdin0.Write([]byte("888888888888\n"))
}
if strings.ReplaceAll(string(tempoutput[:n]),"\n","") == "99999999999999999999"{
Stdin0.Write([]byte("exit\n"))
}
fmt.Println(string(tempoutput[:n]))
}
}
} else {
outputbuf0 := bufio.NewReader(stdout0)
touput0 , _ , err := outputbuf0.ReadLine()
if err != nil {
return
}
fmt.Println(string(touput0))
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了