簡體   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