草庐IT

数字信任

全部标签

c++ - 从文件中读取空格分隔的数字直到换行符

我有一个包含以下数据的文本文件。第一行是这样的:54321第二行是这样的:12345我试图一次从一行读取数据,因为我的第一个链表对象将使用第一行的数据,而我的第二个链表对象将使用第二行的数据。我能想出的最好的是以下功能:voidpolynomial::allocate_poly(std::ifstream&in,constchar*file,constchar*number){in.open(file);std::stringstr;charb;intm=0;for(inti=0;!in.eof();++i){in>>b;m=b-'0';a.insert(m);}这种方法存在一些问题。

c++ - 如何从 C++ 文件中读取数字?

我的主要问题是关于如何从非char数据类型的文件中读取数据。我正在从MATLAB中编写一个数据文件,如下所示:x=rand(1,60000);fID=fopen('Data.txt','w');fwrite(fID,x,'float');fclose(fID);然后,当我尝试使用以下代码在C++中读取它时,“num”没有改变。#include#includeusingnamespacestd;intmain(){fstreamfin("Data.txt",ios::in|ios::binary);if(!fin){cout>num;cout我可以在matlab中读写文件,我可以在c++

c++ - 如何预测具有符号数字类型的东西?

假设我有一些执行以下操作的模板化代码:Tx=foo();Ty=-x;现在,如果T是非数字类型(或者没有实现一元负号),编译将简单地失败。但如果是unsignedint、unsignedshort等,它会成功,但会出现警告。所以我希望能够做到Tx=foo();if(/*magiccondition*/{Ty=-x;}我能否写出T的类型是某种有符号数字类型的条件(在编译时或运行时检查)?例如使用typeid?注意:断言也不错,但我想要更灵活的东西。 最佳答案 C++11具有is_unsigned特性,您可以在static_assert中

c++ - 不同的编译器用来处理数字转换溢出的一些常见策略是什么?

我明白,在C++中,当我将float/double转换为int时,float超出int可以容纳的范围,结果未定义为C++语言的一部分。结果取决于实现/编译器。常见的编译器使用哪些策略来处理这个问题?将7.2E12转换为int可以产生值1634811904或2147483647。例如,有人知道编译器在每种情况下都在做什么吗? 最佳答案 编译器生成指令序列,为所有不会导致溢出的输入生成正确的结果。这就是它所需要担心的(因为overflowintheconversionfromfloating-pointtointegerisundefi

c++ - 在 C++ 中处理极小的数字

设a和b是介于0和1之间的两个数字。如何计算pow(a,10000)/(pow(a,10000)+pow(b,10000))?例如:-以下代码给出-nan作为输出而不是0.5doublea=0.5,b=0.5;cout 最佳答案 您的问题没有简单通用的解决方案。编写处理非常小和/或非常大的数字的计算机程序是一门“科学艺术”——通常称为数值分析。典型的技巧涉及在计算之前进行缩放。在您的情况下,每个pow(..)都四舍五入为零,因为这是最接近实际结果的可表示值。之后你执行0/(0+0),这是NaN,即不是数字。你可以做longdoubl

c++ - 检查字符串是否包含数字范围

我想测试一个std::string是否包含任何范围的数字,例如5到35在std::strings="XDGHYH20YFYFFY"是否会有函数,或者我必须将数字转换为字符串,然后使用循环来查找每个函数? 最佳答案 我可能会使用将除数字以外的所有内容都视为空白的语言环境,并从充满该语言环境的字符串流中读取数字并检查它们是否在范围内:#include#include#include#include#includestructdigits_only:std::ctype{digits_only():std::ctype(get_table

C++非法数字,简单问题

我遇到了这个错误:inttemp=0789;errorC2041:illegaldigit'8'forbase'8'据我所知,编译器将任何以0开头的数字(如0123)理解为八进制。但是我怎么才能告诉编译器只接受它前面的0呢? 最佳答案 如果你把0放在前面,它认为它是一个八进制值,因此8和9是非法数字。 关于C++非法数字,简单问题,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4

c++ - 括号中的一对数字

这是一段代码。任何人都可以解释将一对数字括在括号内是什么意思。(这是在C++中。)inta=2,b=2,c=3,d=1;if((a,b) 最佳答案 那是逗号运算符;它评估左边的东西,抛出结果,并返回右边的结果。由于评估int变量没有副作用,因此if在语义上等同于if(b 关于c++-括号中的一对数字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/13004019/

c++ - 8 个字节如何容纳 302 个十进制数字? (欧拉挑战16)

c++pow(2,1000)isnormalytobigfordouble,butit'sworking.why?所以我已经学习C++几个星期了,但数据类型仍然让我感到困惑。首先是一件小事:0xbadc0de在另一个线程中发布的代码对我不起作用。首先,pow(2,1000)给我这个重载函数“pow”的实例不止一次匹配参数列表。我通过更改pow(2,1000)->pow(2.0,1000)修复了它看起来不错,我运行它并得到这个:http://i.stack.imgur.com/bbRat.png代替107150860718626732094842504906000181056140481

c++ - 数字常量之前的预期不合格 ID?

我在102、115和128行上遇到错误。我究竟做错了什么?它说:Expectedunqualified-idbeforenumericconstant我不知道那是什么意思。我已经尝试修复这个问题一个星期了,它将于下周三在我的C++类(class)中到期。我真的可以在这里使用一些外部建议。我做错了什么:#include#include#include#include#includeusingnamespacestd;doubleqMeter=0;doublehMeter=0;doubleoneMeter=0;intsolDay=0;stringgarbage;stringlocalTim