我尝试过使用fgets(username,20,stdin); fgets(密码,20,标准输入);在将POST表单的输入传递给我时,为我的C程序输入输入但是它添加了&在用户名值的末尾...我该如何解决这个问题?
我想我的问题是:如何通过用户名和密码的输入进行解析,这样我才能得到实际输入到框中的内容而不是一些混乱的字符串?
答案 0 :(得分:1)
这是因为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;
}