Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++字符变量2字_C++_String_Char - Fatal编程技术网

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:我补充了一个解释。谢谢:谢谢,我现在删除了我的答案,因为我相信除了你的答案之外,它现在什么都没有了。