如何获取包含空格的用户输入。
我尝试这样做:
printf("Enter a sentance: ");
scanf("%s", st);
getchar();
printf("%s", st);
但是当我进入 你好,世界 它只会返回 你好
答案 0 :(得分:5)
使用fgets()(具有缓冲区溢出保护)将您的输入输入字符串。
printf("Enter a sentance: ");
fgets(st, 256, stdin);
printf("%s", st);
答案 1 :(得分:4)
scanf
和cin >> someString
一样一直读到第一个空格。假设您可以使用<iostream>
和<string>
,那么您想要的是
std::string str;
std::getline(std::cin, str);
这将获得所有输入,直到用户点击Enter(\ n)。
答案 2 :(得分:1)
尝试这样:
#include <iostream>
#include <string>
int main() {
std::string st;
std::cout << "Enter a sentence: ";
getline(std::cin, st);
std::cout<< st;
}