C++-cin.get(array,int)未读取第一个字符

C++ - cin.get(array,int) not reading first char

本文关键字:读取 第一个 字符 int get array C++-cin      更新时间:2023-10-16

我刚接触C++,正在尝试一些练习。我想做的第一件事已经给我带来了麻烦。练习的目标是反转输入的字符串。这很容易。但是,当in试图用cin.get(array,int)限制字符数量时,它会删除第一个字符。

代码:

char voornaam[7];
cin >> voornaam;
cin.get(voornaam,7);
cout << voornaam[6] << voornaam[5] << voornaam[4] << voornaam[3] << voornaam[2] << voornaam[1] << voornaam[0] << endl;

这就是代码。因此,这应该正常工作,但当我尝试使用Sander时,它会输出"redna",然后终止。

关于如何解决这个问题的任何想法。我想要一个有cin.get(array,int)的解决方案,而不是有cin的其他函数。

谢谢。

这很有趣。一开始一切都很好。但有一件小事。通知

cin >> voornaam

然后是

cin.get(voornaam,7)

这里发生的是,当第一个提示出现时,您输入Sander。因此,voornaam[0] = 'S'voornaam[1] = 'a'等等。然后按enter键。cin.get(voornaam, 7)将其作为\0。所以,你的voornaam看起来有点像

voornaam[0] = ''
voornaam[1] = 'a'
voornaam[2] = 'n' 

等等

当你把它反转时,你会得到"redna"。因此,不要使用、cin两次或输入完整字符串两次以获得正确的结果。