【发布时间】:2017-12-02 15:20:28
【问题描述】:
我正在尝试从客户端向服务器发送从 bash 读取的整行。
客户:
char buf[200];
int line_len;
getline(&buf, &line_len, stdin);
printf("Sending: %s", buf);
sendl(tcp_sock, buf);
服务器:
char app[200];
recvl(client, app);
printf("\n%s\n", app);
Sendl 和 recvl 是我定义的函数,它们实际上是 send 和 recv,100% 工作
问题出在getline 上,无法正常工作。
当我在输入“你好香蕉”后打印Sending: %s 时,我总是得到像�� 这样的奇怪字符,在这里我什至无法显示..
你能帮帮我吗?
编辑:感谢@dbush,现在可以工作
【问题讨论】:
-
你怎么知道
getline工作不正常?请使用minimal reproducible example 更新您的问题。 -
getline返回读取的字符数。你可以查一下号码。返回的字符数并与您要发送到服务器的行长度进行交叉验证。 -
对不起,我希望现在已经很好了
-
@kiner_shah 我什至可以验证,无论如何读取的字符与我输入的字符完全不同。所以???
-
这仍然不是minimal reproducible example。请显示所有相关变量的定义,尤其是
buf。