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