c - printf() 产生垃圾

标签 c printf

char username[50];

printf("[Enter Command]: \n");
scanf("%s", username);

if (strcmp("exit", username) == 0) {
    exit(0);
}

if (strcmp("jobs", username) == 0) {
    printf("[SERVER] No currently running jobs\n");
}

char dtm[50];
char first_word[50];
char second_word[50];


strcpy(dtm, username);
sscanf(dtm, "%s %s", first_word, second_word);

printf("%s %s\n", first_word, second_word);

我想提取输入字符串的第一个和第二个单词。我不明白为什么我的 printf() 语句会产生垃圾输出

最佳答案

scanf("%s", username); 替换为 gets(username);(第 3 行)。 这就是你的问题所在。 Scanf 仅获取第一个单词。

关于c - printf() 产生垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49637644/

相关文章:

c++ - 是否必须使逻辑运算符短路?和评估顺序?

c - 为什么 printf() 可以解析变量名以访问存储在其中的值,但 scanf() 不能(在 C 编程中)?

c - 将 32 移植到 64b printf 相关错误

c - sprintf(buffer, "%s […]", buffer, […]) 安全吗?

c - 双缓冲和 printf

c++ - 使用 memcpy 将结构转换为 char 数组

c - 调用服务时如何打印使用 GSOAP 生成的 SOAP 消息请求主体

c - 跳过 C 中的函数调用

c - 如何用 0(零)填充整数?

c++ - cvCreateCameraCapture 无法访问 OpenCV 3.0 相机