我曾尝试使用fgets( username,20,stdin);fgets(password,20,stdin);在将POST表单的输入传递给C程序时接受该程序的输入,但它在username值的末尾添加了on &。我该如何解决这个问题呢?
我想我的问题是:我如何解析用户名和密码的输入,使我只得到我在框中实际键入的内容,而不是一些混乱的字符串?
发布于 2016-04-12 12:32:38
这是因为fgets将从流中获得多达19个字符,在您的情况下,它不会在换行符或'&‘处停止。您可以尝试使用sscanf进行格式化输入,如下所示:
#include <stdio.h>
int main(void) {
char *form = "user=foo&password=bar";
char user[32];
char passwd[32];
int ret = sscanf(form, "user=%[^&]&password=%[^&]", user, passwd);
if (ret != 2) {
fprintf(stderr, "invalid form\n");
return 0;
}
printf("user is %s, passwd is %s\n", user, passwd);
return 0;
}https://stackoverflow.com/questions/36563076
复制相似问题