C ++ - cin.get(array,int)不读取第一个char

时间:2014-09-01 13:08:52

标签: c++ arrays

我是C ++的新手,我正在尝试一些练习。我想做的第一个已经让我陷入困境。练习的目标是反转您输入的字符串。这很简单。但是当试图用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为例时,它会输出&#39; redna&#39;然后终止。

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

感谢。

1 个答案:

答案 0 :(得分:0)

嗯,这很有趣。一开始一切都很好。但有一个小问题。注意

cin >> voornaam

接着是

cin.get(voornaam,7)

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

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

等等。

当你扭转它时,你会得到“redna”。所以,不要使用,cin两次,或输入两次完整的字符串以获得正确的结果。