C++字符变量2字
如何做到这一点当我输入这是,输出也将是这是,不仅是这?你可以使用C++字符变量2字,c++,string,char,C++,String,Char,如何做到这一点当我输入这是,输出也将是这是,不仅是这?你可以使用 #include <iostream> using namespace std; void main(){ char name[20]; cin>>name; // when I input "This is" cout<<name<<endl; // output was "This" } 或 取决于字符串中是否需要新行字符 编辑: 如果你想进
#include <iostream>
using namespace std;
void main(){
char name[20];
cin>>name; // when I input "This is"
cout<<name<<endl; // output was "This"
}
或
取决于字符串中是否需要新行字符
编辑:
如果你想进一步简化你的代码,你可以使用一个字符串而不是一个字符数组,你就不必担心用户超过你的缓冲区大小
cin.getline(name, 20);
编辑2:
正如大卫·赫弗南(David Heffernan)在一篇评论中指出的那样,我应该解释为什么它没有像预期的那样对你有效。提取运算符>>在到达空格字符(在您的情况下为空格)时结束。当到达空字符或文件结尾时,运算符也会终止 您可以使用
#include <iostream>
using namespace std;
void main(){
char name[20];
cin>>name; // when I input "This is"
cout<<name<<endl; // output was "This"
}
或
取决于字符串中是否需要新行字符
编辑:
如果你想进一步简化你的代码,你可以使用一个字符串而不是一个字符数组,你就不必担心用户超过你的缓冲区大小
cin.getline(name, 20);
编辑2:
正如大卫·赫弗南(David Heffernan)在一篇评论中指出的那样,我应该解释为什么它没有像预期的那样对你有效。提取运算符>>在到达空格字符(在您的情况下为空格)时结束。当到达空字符或文件结尾时,运算符也会终止 永远不要直接在字符数组中使用运算符>>会导致缓冲区溢出。永远不要直接在字符数组中使用运算符>>会导致缓冲区溢出。我认为,如果您回答了为什么只读取一个单词的问题,并给出了很好的建议,您的答案会有所改进。然后我可以删除我的答案。@DavidHeffernan:我补充了一个解释。谢谢:谢谢,我现在已经删除了我的答案,因为我相信它现在提供的东西比你的多。我认为如果你回答了为什么只有一个单词被阅读的问题,并且提供了很好的建议,你的答案将会得到改进。然后我可以删除我的答案。@DavidHeffernan:我补充了一个解释。谢谢:谢谢,我现在删除了我的答案,因为我相信除了你的答案之外,它现在什么都没有了。