簡體   English   中英

我們應該在競爭性編程中使用cin.ignore()嗎?

[英]Should we use cin.ignore() in competitive programming?

輸入是一個整數,后跟兩個字符串。

我想寫下面的代碼

cin>>num;
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
getline(cin,string1,'\n');
getline(cin,string2,'\n');

如果我省略第2行,則代碼在我的編譯器上失敗。 我不知道在線法官的工作方式。 是否需要cin.ignore()函數? 分隔符也需要'\\ n'嗎?

是否需要cin.ignore()函數?

是的,否則第一個getline將獲得包含第一個數字的行的其余部分(可能為空)。

分隔符也需要'\\ n'嗎?

是的,默認情況下它將忽略所有字符,包括行尾。 指定\\n可忽略直到(包括)當前行末尾的所有字符。

這是我今天才發現的,因此我在這里與您分享。

輸入數值輸入時,請使用

cin>>numberVar>>ws;

這樣可以避免空格,讓您使用

getline(cin, stringVar);

沒有任何問題。

樂意效勞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM