C++ 如何在C++;?
我正在为学生百分比生成器构建一个程序。在程序中,我想将输入的学生姓名打印到特定字符,例如5。我使用的是数组字符串。 我找了很多,但找不到这个问题的正确答案 我尝试过只使用数组。[我是初学者]C++ 如何在C++;?,c++,C++,我正在为学生百分比生成器构建一个程序。在程序中,我想将输入的学生姓名打印到特定字符,例如5。我使用的是数组字符串。 我找了很多,但找不到这个问题的正确答案 我尝试过只使用数组。[我是初学者] #include<iostream> using namespace std; int main() { cout<<"Enter your name:"; char name[20]; cin>>name; //want to show only fir
#include<iostream>
using namespace std;
int main()
{
cout<<"Enter your name:";
char name[20];
cin>>name; //want to show only first 5 name letters
cout<<"Your name is "<<name;
return 0;
}
#包括
使用名称空间std;
int main()
{
coutname;//只显示前5个姓名字母
是的,您可以使用字符串数据类型提供的substr
方法
#include<iostream>
using namespace std;
int main()
{
string name;
cout << "Enter your name:";
cin >> name;
cout << "Your name is " << name.substr(0, 5);
return 0;
}
#包括
使用名称空间std;
int main()
{
字符串名;
姓名;
cout非常简单:
std::cout.write(name, std::min(5, strlen(name));
或者,如果使用std::string(最好用于输入读取以避免缓冲区溢出):
如果不想存储整个名称,而只存储5个字符
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符名[6];
对于(int i=0;i<3;i++){
//仅读取前5个字符
cin>>setw(名称大小)>>名称;
//忽略输入缓冲区的其余部分
cin.ignore(数值限制::max(),'\n');
Cout请,不要教新用户从GooGo中的一些坏习惯:如果马克斯或提姆的名字比5个字符短,那程序会崩溃吗?因为这是C++,所以我假设答案是肯定的。@ ROLLANILIG,它不会对长度5也适用。输出也缺少最后的换行符。在这里,只需使用一个简单的“\n”
。@RolandIllig不要假设。阅读文档:。“返回一个子字符串[pos,pos+count]。如果请求的子字符串超出了字符串的末尾,或者如果count==npos,则返回的子字符串是[pos,size()
)。”(强调我的)
std::cout.write(name.c_str(), std::min(5, name.length()); // or .data()