Questions tagged «getline»

10
为什么在C ++中从stdin读取行比Python慢​​得多?
我想比较使用Python和C ++从stdin读取的字符串输入的行数,并且震惊地看到我的C ++代码运行速度比等效的Python代码慢一个数量级。由于我的C ++生锈,而且我还不是专家Pythonista,因此请告诉我我做错了什么还是误解了什么。 (TLDR回答:包括以下声明:cin.sync_with_stdio(false)或仅使用fgets代替。 TLDR结果:一直滚动到我的问题的底部,然后查看表格。) C ++代码: #include <iostream> #include <time.h> using namespace std; int main() { string input_line; long line_count = 0; time_t start = time(NULL); int sec; int lps; while (cin) { getline(cin, input_line); if (!cin.eof()) line_count++; }; sec = (int) time(NULL) - start; cerr << "Read …

7
什么时候以及为什么需要在C ++中使用cin.ignore()?
我用C ++写了一个非常基本的程序,要求用户输入一个数字,然后输入一个字符串。令我惊讶的是,在运行该程序时,它从未停止过询问字符串。它只是跳过了它。在对StackOverflow进行一些阅读之后,我发现我需要添加一行内容: cin.ignore(256, '\n'); 在获取字符串输入的行之前。添加该功能可以解决问题并使程序正常运行。我的问题是,为什么C ++需要这一cin.ignore()行?如何预测何时需要使用cin.ignore()? 这是我编写的程序: #include <iostream> #include <string> using namespace std; int main() { double num; string mystr; cout << "Please enter a number: " << "\n"; cin >> num; cout << "Your number is: " << num << "\n"; cin.ignore(256, '\n'); // Why do I need …
73 c++  cin  getline  ignore 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.