草庐IT

c++ - 在 C++ 中读取很长的控制台输入

我正在尝试使用std::cin从控制台读取数字列表(以空格分隔)。当输入行超过1023个字符时,以下小示例中的第一个“cin>>list[i]”永远不会返回:usingnamespacestd;intmain(){vectorlist(200,0);for(inti=0;i>list[i];cout此代码对于以下输入失败:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717

c++ - 是否可以从 cin 输入 "prepare"?

在hisanswer,特别是在linkedIdeoneexample,@Nawaz展示了如何更改cout的缓冲区对象以写入其他内容。这让我想到利用它来准备来自cin的输入,方法是填充它的streambuf:#include#includeusingnamespacestd;intmain(){streambuf*coutbuf=cout.rdbuf(cin.rdbuf());cout>s;cout.rdbuf(coutbuf);cout但这并不像预期的那样有效,或者换句话说,它失败了。:|cin仍然需要用户输入,而不是从提供的streambuf中读取。有什么办法可以做到这一点吗?

c++ - cin.clear() 如何清除输入缓冲区?

根据我的阅读,cin.clear()重置标志,但这如何清除输入缓冲区? 最佳答案 cin.clear()对输入缓冲区没有影响。正如您正确阅读的那样,它会重置iostate标志(从技术上讲,用std::ios_base::goodbit替换它们的当前值) 关于c++-cin.clear()如何清除输入缓冲区?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/20832289/

c++ - 数组在 C++ 中自动填充自身

我正在学习C++,做了一些简单的示例,发现了这种奇怪的行为。填充整数数组的元素时,如果任何元素设置为大于2147483647(我认为这是最大整数值?),则数组中的其余元素将设置为该确切数字,每个其中之一。我知道如果一个元素超出了它的类型限制,编译器会将它限制在该限制内,但我不明白为什么它对其他项目做同样的事情,甚至不要求用户填写它们。这是我运行的一个简单测试:#includeusingnamespacestd;intmain(){inttest[5];intnum=0;for(inti=0;i>num;test[i]=num;}cout感谢阅读、评论和帮助!

c++ - scanf 与 cin : string as integer processing

我有一个输入字符串“0100”为什么scanf("%i",&n);返回64而cin>>n;给我100?为什么cin以十进制值思考,而scanf以八进制值思考? 最佳答案 Fortheispecifier:  Anynumberofdigits,optionallyprecededbyasign(+or-).Decimaldigitsassumedbydefault(0-9),buta0prefixintroducesoctaldigits(0-7),and0xintroduceshexadecimaldigits(0-f).-sca

C++ getline 或 cin 不接受带空格的字符串,我搜索了谷歌,但我仍然很困惑!

首先感谢所有帮助过我的人,万分感激!我正在尝试将包含空格和特殊字符的字符串完整地存储到MessageToAdd中。我正在使用getline(cin,MessageToAdd);我也尝试过cin>>MessageToAdd;。我太难了!当我输入示例输入Test一切都按预期进行。但是,如果我要使用TestTestTest整个控制台会快速闪烁,直到我按下CtrlC。有人告诉我,我将变量放在顶部的风格已经过时了。请原谅我,因为我还在自学,这只是习惯的力量。解决这个问题后,我会很快改变我的风格:)voidAddMessage(){ifstreammyReadFile;stringstr;stri

c++ - istream_iterator cin 初始化等待输入

我有这个代码片段。istream_iterator对象仅被定义而未被使用,因此我预计它不会执行任何操作并且应用程序会立即完成。但是当我运行应用程序时,在我提供一些输入之前它不会完成。为什么?我在ArchLinux上编译它:gcc4.7.1,命令:g++-std=c++11filename.cpp#include#includeusingnamespacestd;intmain(intargc,char*argv[]){istream_iteratorinput(cin);return0;} 最佳答案 按照标准,24.6.1.1ist

c++ - 为什么这行得通?使用 cin 读取小于给定输入的字符数组

我正在阅读C++PrimerPlus(第6版),我在第4章中看到了一些示例代码,对此我有疑问:list4.2strings.cpp//strings.cpp--storingstringsinanarray#include#include//forthestrlen()functionintmain(){usingnamespacestd;constintSize=15;charname1[Size];//emptyarraycharname2[Size]="C++owboy";//initializedarray//NOTE:someimplementationsmayrequire

C++ : cin while cout

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭8年前。Improvethisquestion好吧,我正在用C++编写一个用于linux终端的聊天。我想在打字时接收消息。基本上,一个非阻塞的cin。我设法通过创建线程来完成这项工作。但问题是传入的消息和我的输入正在合并在一起。有什么方法可以将cin行与来自cout的其他行分开吗?对不起我的英语。

C++程序在cin之后突然结束

我正在编写代码来获取非常大的斐波那契数的最后一位,例如fib(239)等。我正在使用字符串来存储数字,从头到尾抓取各个字符,然后将它们转换为int而不是将值存储回另一个字符串。我无法测试我所写的内容,因为我的程序在std::cin>>n;行之后突然关闭。这是我到目前为止所拥有的。#include#includeusingstd::cin;usingstd::cout;usingnamespacestd;charget_fibonacci_last_digit_naive(intn){cout=0;--j){//grabconsectutivepositionsinthestrings&