jjzjj

java - 如何在 Java 中正确使用 printf 格式化

我正在尝试创建一个简单的程序来接收三个项目、它们的数量和价格,并将它们加在一起以创建一个简单的收据类型格式。我的教授给了我一种特定的收据格式,其中所有小数点都排成一行并始终如一地放置。它应该看起来像这样。YourBill:ItemQuantityPriceTotalDietSoda101.2512.50Candy11.001.00Cheese22.004.00Subtotal17.506.25%SalesTax1.09Total18.59我的教授指定名称应有30个字符,数量和价格以及总计应有10个字符。这样做我必须使用printf方法。到目前为止,我正在尝试使用此代码对其进行格式化。i

java - println 和 printf 的不同舍入

由于精度损失,下面第一行将打印0.8999999999999999,这一点很清楚。但是第二行会打印0.9,我只是不明白为什么。这个计算应该不会有同样的问题吧?System.out.println(2.00-1.10);System.out.printf("%f",2.00-1.10); 最佳答案 我认为你在使用System.out.printf()时遗漏了一些东西,如果你没有显式格式化宽度,那么C中printf的默认行为(如果没有明确指定,则为小数点后6位)因此,如果您不为%f指定任何数字,那么默认情况下它只会打印1个字符。但是,如

c++ - 为什么与 printf 未定义行为中的转换说明符不匹配的参数?

在C(n15707.21.6.1/10)和C++(通过包含C标准库)中,向printf提供类型与其转换规范不匹配的参数是未定义的行为。一个简单的例子:printf("%d",1.9)格式字符串指定一个int,而参数是一个浮点类型。这个问题的灵感来自于遇到遗留代码的用户的问题,该代码有大量的转换不匹配显然没有伤害,cf。undefinedbehaviourintheoryandinpractice.一开始仅仅声明格式不匹配UB似乎有些过激。很明显,输出可能是错误的,这取决于确切的不匹配、参数类型、字节顺序、可能的堆栈布局和其他问题。正如那里的一位评论员指出的那样,这也延伸到后续(甚至之前

c++ - 使用带有填充零的 printf 按顺序打印数字

在C++中,我想使用printf打印一个数字序列,所以我从“for”循环中得到;12...91011然后我根据这些数字创建文件。但是当我使用“ls”列出它们时,我得到了101112..所以我没有尝试使用bash来解决问题,而是想知道如何打印;00010002...000900100011等等谢谢 最佳答案 i=45;printf("%04i",i);=>0045基本上,0告诉printf用'0'填充,4是位数,'i'是整数的占位符(您也可以使用'd')。参见Wikipedia关于格式占位符。

c# - 将 printf C++ 控制台输出重定向到 C#

这是我在C#GUI程序中单击按钮时调用的方法。它启动了一个非常简单的C++控制台程序,该程序除了在永无止境的循环中每秒打印一行之外什么都不做。privatestaticProcessprocess;privatevoidLaunchCommandLineApp(){process=newProcess();process.StartInfo.FileName="SimpleTest.exe";process.StartInfo.UseShellExecute=false;process.StartInfo.RedirectStandardOutput=true;process.Enab

c++ - 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?

我有一个C++类,它是日志系统的前端。它的日志记录功能是使用C++11的可变参数模板实现的:templatevoidFrontend::log(constchar*fmt,Args&&...args){backend->true_log(fmt,std::forward(args)...);}每个日志记录后端都实现了自己的true_log版本,除其他外,它使用转发的参数调用vsnprintf。例如:voidBackend::true_log(constchar*fmt,...){//otherstuff..va_listap;va_start(ap,fmt);vsnprintf(buf

c++ - HLSL 中的 printf 函数有什么作用?

MSDNHLSL引用说明了有关printf的内容:“向信息队列提交自定义着色器消息。”https://msdn.microsoft.com/en-us/library/windows/desktop/ff728755%28v=vs.85%29.aspx什么是信息队列,如何查看着色器消息?这是否意味着在像素着色器中使用时会输出宽度*高度(屏幕像素)消息?谢谢! 最佳答案 基本上,它可以用于着色器跟踪。D3D11_TRACE_STEP结构可以帮助你从HLSL中获取printf传递的消息,一个例子如下,乍一看似乎没问题(虽然是用D写的):

java - 带有 C++ 的 JNI 在 cout、printf 和方法调用上不断崩溃

我正在用C++编写我的第一个JNI程序,并制作了一些测试方法以确保一切正常。问题是:当我调用方法测试时,它给出的结果波动很大。有时它会永远运行,有时我会遇到构建错误,有时我会收到fatalerror和错误消息。这不仅发生在printf和std::cout上,而且发生在方法调用上(然后我总是遇到fatalerror。我没有在问题中包含一个例子)。我看不到错误。希望得到一些帮助。我目前使用g++作为编译器,还有其他选项:-D__int64=int64_t。Java类:publicclassJNI{publicstaticnativeinttest();publicstaticnativei

c++ - 使用 fprintf 获取访问冲突写入位置 0x00000014

我在VisualStudio2010上工作。该程序本身最初是为CUDA的future端口设计的,所以一切都准备好了,但现在我只是测试它是否适用于纯C++(实际上我现在正尝试坚持使用c,因为我对它更熟悉)。相关代码为:#defineNMBR_EXP_ENERGIES21#defineNMBR_Ls3#defineNMBR_POINTS20000intNMBR_EXP_ENERGIES_L[NMBR_Ls];voidwrite_results(double**u,int*NmbrNodes,int*div){constcharprefix[]="wave_function_";charfi

c++ - libpcap 和无线信号捕获

我正在尝试编写一个c++应用程序(linux)来捕获无线数据包以及相关的信号强度(以dBm为单位)。捕获部分很简单,但问题是我找不到任何关于如何获取每个数据包信号强度的文档。它是标题的一部分吗?这是我目前所拥有的:printf("Device:%s\n",dev);printf("Numberofpackets:%d\n",num_packets);printf("Filterexpression:%s\n",filter_exp);/*opencapturedevice*/pcap_t*handler=pcap_create("wlan0",errbuf);if(handler==N