假设我们已有一个函数,
int recv(char* buf, int len);
这个函数要求你准备一个 buffer,并告诉这个函数这个 buffer 有多长(len),这个函数就会在 buffer 里填上一些字符,并返回字符的个数(返回值永远 > 0 )。
请写出这样一个函数,
char* read_line() {
// ??? 你要写的代码
}
这个函数不需要任何参数,内部是靠调用 recv() 来拿到一些字符,然后要搜索回车字符 \n,找到后返回之前的字符,比如,
如果 recv() 拿到 "123\n45\n678",那第一次调用 read_line(),需要返回 "123"
但是请注意,第二次调用时,要返回 "45" (第二行字符窜)
第三次调用时,"678" 还没用掉,可是因为 678 之后没有 \n,所以你要继续调用 recv(),拿到更多字符,
假如 recv() 返回 "abc",你有了 "678abc",可是因为 abc 之后没有 \n,所以你要继续调用 recv(),拿到更多字符
假如 recv() 返回 "de\n",你有了 "678abcde\n", 因为看到了 \n,所以你可以直接返回 "678abcde" 了。
编程题,要求用c++语言解答
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-