草庐IT

c# - C++ 到 C# : cin to Console. 读取

有没有办法像在C++中那样在C#中读取同一行的多个输入?我已经包括了一个例子:#include#includeusingnamespacestd;intmain(){cout>name>>age;return0;} 最佳答案 String.Split是这里显而易见的解决方案:stringinput=Console.ReadLine();string[]split=input.Split(``);然后使用结果数组。您失去了“漂亮”的变量名,并且必须将string转换为int-但无论如何您都必须这样做。您可以指定一组拆分字符:strin

c++ - 使用 cin 将输入作为函数参数传递

我的程序:classtest{intk;public:voidchangeval(inti){k=i;}};intmain(){testobj;inti;cin>>i;obj.changeval(i);return0;}有什么方法可以让我直接将用户的输入作为参数传递给函数changeval(int),而无需为i初始化值??我的意思是,我不想声明一个变量只是为了将值传递给函数。有什么办法可以避免吗?如果是,我也可以将它用于构造函数吗?谢谢。 最佳答案 没有。现在,您可以将其放入一个函数中:intreadInt(std::istream

c++ - 为什么需要第二个 cin.ignore() ?

我注意到,每当我编写使用std::cin的程序时,如果我希望用户按Enter键结束程序,我必须编写std::cin.ignore()两次以获得所需的行为。例如:#includeintmain(void){intval=0;std::cout>val;std::cout我还注意到,当我不使用cin进行实际输入,而只是在最后调用ignore()时,我只需要一个. 最佳答案 Discl:我正在简化实际发生的事情。第一个用于清除提取运算符(>>)未消耗的内容。第二个等待另一个\n。当我们在提取后执行std::getline时完全相同:ath

c++ - 为什么整数溢出会导致 C++ iostream 出错?

好的,所以我对C++iostream有一些感觉很奇怪的问题,但它可能是定义的行为,考虑到MSVC++和G++都会发生这种情况。假设我有这个程序:#includeusingnamespacestd;intmain(){inta;cin>>a;cout>a;cout如果我通过给第一个cin一个大于int的最大限制的值来故意溢出,所有对cin.operator>>()的进一步调用将由于某种原因立即返回,并且a被设置为某个值。该值似乎未定义。为什么,这种行为记录在哪里?有没有办法确定是否发生了这种溢出?另外,这个类似的程序似乎可以按我的预期运行。如果我溢出该值,它会为a提供一些值,并继续进行,

c++ - 为什么 std::cin.getline 没有重载方法来获取 std::string?

我很好奇cin.getline的技术原因和globalgetline功能在不同的地方。不简单地为cin定义所有这些函数签名的动机是什么://THESETWOEXISTistream&cin::getline(char*s,streamsizen);istream&cin::getline(char*s,streamsizen,chardelim);//THESETWOCOULDEXISTistream&cin::getline(string&s);istream&cin::getline(string&s,chardelim);是不是因为可能要添加其他类型,不想把字符串嫁给cin?

c++ - cin 对于一个 int 输入一个 char 会导致应该检查输入的循环变得疯狂

这是我的游戏的一个功能,它会要求输入并输入“iAuswahl”!然后while循环检查它是否是我想要的值之一1-9如果不是它激活并且应该要求新的输入。它为int做的女巫。但是,如果我输入一个像r这样的字符,它会变得疯狂,并且只是不断地把我的cout还给我并跳过cin!我的问题是它为什么这样做以及我该如何阻止它?voidzug(stringsSpieler,intiDran){intiAuswahl;charcXO='O';if(iDran==1){cXO='X';}cout>">iAuswahl;cout>iAuswahl;}feldfuellen(iAuswahl,cXO);}

c++ - 使用 cin 跳过预期的字符,如 scanf()

如何在C++中用scanf("%d#%d",&a,&b);实现类似cin的效果? 最佳答案 您可以通过将#提取到一个字符中来跳过它:std::istringstreamiss("10#20");intmain(){inta,b;charhash;iss>>a>>hash>>b;assert(a==10&&b==20);} 关于c++-使用cin跳过预期的字符,如scanf(),我们在StackOverflow上找到一个类似的问题: https://stacko

c++ - 在没有 cin 的情况下从控制台获取输入?

我正在尝试制作一个基本上是控制台乒乓球的小控制台程序。所以现在我有这个:intmain(){while(1){clearScreen();restThread(100);}return0;}我需要轮询的唯一输入是用户在屏幕被清除后是否按下了A或D键。我还需要知道何时释放key。我也在尝试做这个跨平台。所以我真正需要的只是if(keyWasDown('a')){}之类的函数。谢谢 最佳答案 也许你想要kbhit(非阻塞)或getch(阻塞),都来自.还有getchar,来自或.如果你想让程序等待键盘按下,getch或getchar自己

c++ - 如何使用 cin 读取 double 的全部值?

longdoublem;cout>m;cout输入:输入双倍数:1.546640625输出:米=1.54664我必须用点转换成二进制,当我读到像2.359375000这样的数字时输出:米=2.35938它有效,但我认为问题是1.546640625中的零 最佳答案 您已经阅读了double的全部值。问题出在cout上。它默认将值四舍五入到小数点后6位。要设置cout使用的精度,请使用setprecision来自:#include#includeusingnamespacestd;intmain(){longdoubled;cin>>d

c++ - 一段时间后如何停用输入语句?

我们知道输入函数或运算符(cin、scanf、gets….etc)等待从用户那里获取输入,而且这个时间没有限制。现在,我会问一个问题,用户给出答案,到现在为止没有问题,但我的问题是“用户有时间(可能是30或40秒)提供输入,如果他失败,那么输入语句将自动停用并执行下一条语句。”我想你明白我的问题了。那么请在这种情况下帮助我。如果有人给我一些真正有效的示例代码会更好。我在Windows7中使用codebolck12.11。 最佳答案 *IX'ish系统(包括Windows上的Cygwin)的方法:您可以使用alarm()安排一个SIG