繁体   English   中英

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

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

我是C ++的新手,正在尝试一些练习。 我想做的第一个已经给我带来了麻烦。 练习的目的是反转您输入的字符串。 这很容易。 但是,当尝试使用cin.get(array,int)限制字符数量时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' ,依此类推。 然后按回车。 cin.get(voornaam, 7)将其设为\\ 0。 所以,你的voornaam看起来像

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

等等。

而当您反转它时,您会得到“ redna”。 因此,请勿使用cin两次,也不要输入两次完整的字符串以获取正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM