我刚刚开始学习C,并且我想创建一个基于文本的小型浏览器。程序启动时,显示“输入URL:”,然后使用scanf()捕获用户输入。抓住它时,它应该说“正在加载{USER_INPUT} ...”,但是会显示“正在加载{FIRST_LETTER_OF_USERS_INPUT} ...”,在这种情况下为h。我确定声明变量有问题。这是我的完整代码:

#include <stdio.h>
#include <curl/curl.h>
 
int main(void)
{

char urlinput;
CURL *curl;
CURLcode res;

curl = curl_easy_init();
if(curl) {
    printf("\nEnter a URL to go to: ");
    scanf("%c", &urlinput);
    printf("\nLoading %c...\n", urlinput);

    curl_easy_setopt(curl, CURLOPT_URL, urlinput);
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
    res = curl_easy_perform(curl);
    if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
  curl_easy_cleanup(curl);
}
return 0;
}

最佳答案

您需要使用一个字符数组(字符串):

char urlinput[100];


和你的scanf:

scanf("%s", urlinput);

08-16 03:43