[英]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.