C语言,关于scanf和printf格式问题

代码图
警告图
运行结果

如果把代码中的long double 替换成double且%Lf替换成%f运行结果是这样的
修改后运行结果

查过资料%Lf应该是合法的,但是总是出现警告。%lld也会出现类似警告。实在不知道为什么?

c

4个回答

lf的l是小写的。

在使用scanf和printf函数时要加上#include 。其中scanf()是格式输入函数,printf()函数是格式化输出函数。

在原始的C标准中是没有这个类型的,C99中才添加了该类型。而在C99及后续的规范中,对于该类型规定的也并不详细,只是要求long double类型在精度上需要不少于double的精度。于是就出现了有的编译器不支持long double, 而支持的编译器在实现上也有所区别,目前常见的long double有占用8字节,10字节,12字节和16字节四种,但输出格式都是相同的%lf。 如果想知道使用的编译器是如何实现的,可以用printf("%d", sizeof(long double));输出long double占用的空间值。
应该是编译器的支持的问题,你这个long double估计和double是一样的

有可能是编译器的问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言scanf与printf?
n代码如下 运行环境 VS2013 n问题:输入1a 输出a=1 (这个没问题)而ch却什么都没得到。为什么?ch不应是a吗?n```n #includen#includenint main()nn int a;n char ch;nn scanf_s("%d", &a);n printf("a=%d\n",a);nn scanf_s("%c", &ch);n printf("ch=%c\n",ch);n system("pause");n return 0;nn```n运行结果附图如下:n![图片说明](https://img-ask.csdn.net/upload/201506/04/1433372048_502127.jpg)n
scanf和printf格式问题
一.scanf函数 1.该函数可以获取任意数据类型的输入,但是必须指定输入格式: %c 读入一个字符 %s 读入一个字符串 %d 读入一个十进制数 %[^\n] 读入一组字符串 %f 读入一个单精度浮点数 %lf 读入一个双精度浮点数 %0 读入一个八进制数 %x 读入一个十六进制数 %
【C语言】scanf和printf的返回值。
little fairy的第二篇博客。 让我们一起来看看scanf和printf的返回值吧。 scanf: 在VS2012中,用scanf会给出警告。(对于一个程序员,警告比错误更致命。) scanf非常容易出错,所以我们一般要求不用scanf。 但如果用到scanf出错,为了解决,我们通常需要判断scanf的返回值。 scanf的返回值: 用scanf读取几个数,则scanf的返回...
C语言-scanf与printf的格式控制
对于浮点型数据来说,它们的格式控制即“%f %lf”,一般来说,scanf要比printf要严格许多。 例如: 如果你double了一个变量,那么输入时必须scanf(“%lf”,&x),而输出时pirntf("%f",x)也行。 在打印输出时,如果想控制浮点型小数点的个数x,那么 %.xf,即可。
C语言Printf()&scanf() 学习笔记
prinf()和sanf()函数用于输入和输出,关于数据整型、字符型和浮点型此时对应的都是一个 scanf("%d",&i); 或者是 scanf("%c",&c); 又或者是 scanf("%f",&f); 如果遇到字符串,解决思路如下: #include "stdafx.h" #include #include #define PRAISE "What a marvelous
C语言printf()和scanf()函数
*表示跳过,[^,]表示逗号之前的任何内容,合起来就是逗号之前的内容都不要%[^,]类似
C语言 scanf与printf的返回值
在使用scanf函数时要特别注意它的返回值,最好看一下它是否返回正确的返回值。例如:#include<stdio.h> int main() { int a; int b; int n=scanf("%d,%d",&a,&b); //成功返回的个数 printf("a=%d,b=%d\n",a,b); printf("%d\n",n); retu...
VC编程,C语言,scanf,printf问题
前面有定义结构体rnstruct studentrnrn int num;rn char name[10];rn int score[3];rn;rnrn以下是用3种情况输入一个学生的信息:rn第一种:for(i=0;i<1;i++) //name放最后rn rn printf("Input the number,name,and three scores of the %dth student:\n",i+1);rn scanf("%d,%d,%d,%d,%s",&a[i].num,&a[i].score[0],&a[i].score[1],&a[i].score[2],a[i].name); rn rnrn第二种:for(i=0;i<1;i++) //name不放最后rn rn printf("Input the number,name,and three scores of the %dth student:\n",i+1);rn scanf("%d,%s",&a[i].num,a[i].name);rn scanf("%d",&a[i].score[0]);rn scanf("%d",&a[i].score[1]);rn scanf("%d",&a[i].score[2]);rn rnrn第三种:for(i=0;i<1;i++) //name不放最后rn rn printf("Input the number,name,and three scores of the %dth student:\n",i+1);rn scanf("%d,%s,%d,%d,%d",&a[i].num,a[i].name,&a[i].score[0],&a[i].score[0],&a[i].score[0]);rn rnrn打印的话都是用这个语句:for(i=0;i<1;i++)rn rn printf("\n输出上面的信息:");rn printf("%d,%s,%d,%d,%d",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2]);rn rn三种方法分别对应的输出显示情况如下:rn[img=https://img-bbs.csdn.net/upload/201405/14/1400036927_250181.png][/img]rn[img=https://img-bbs.csdn.net/upload/201405/14/1400036903_38468.png][/img]rn[img=https://img-bbs.csdn.net/upload/201405/14/1400036916_980099.png][/img]rnrn但是我最想用的第3种方法,但是后面乱码,请问怎么回事?我猜是scanf的回车键结束引起的,但是不知道它内部怎么读数据的?有大神不?
C——printf和scanf返回值问题
printf返回输出的字符数; scanf返回输入的字符数。#include <iostream> using namespace std;int main(){ const char *a = "message"; int b=printf("%s", a);//返回输出的字符数,赋给b cout << endl << "b = " << b << endl; c
C 关于printf scanf的返回值的问题思考
printf返回值的思考 #include &amp;lt;stdio.h&amp;gt; int main(void) { printf(&quot;%d&quot;,printf(&quot;%d&quot;,printf(&quot;%d&quot;,43))); } 其输出结果为4321 过程:printf先将43打印出来,然后最右边的printf返回2,对应第二个%d打出2,在对应第三个%d打出1。...
scanf()的使用注意、scanf() printf()格式字符
scanf()的使用注意、scanf() printf()格式字符 #include &amp;lt;stdio.h&amp;gt; int main(int argc, char const *argv[]) { char buf[100] = {0}; printf(&quot;请输入字符串:&quot;); scanf(&quot;%s&quot;, buf);//不需要&amp;amp;, 默认以空格分开 printf(&quot;buf = %s...
关于scanf的问题[C语言]
#includernint main()rnrn int a=0;rn scanf(" %d",&a);rn printf("%d",a);rn return 0;rnrnrn注意scanf中%d前面有空格rn当输入为123回车 "123\n"rn或者空格123回车" 123\n"rn时都能正确输入。 如果scanf要求格式完全匹配的话 第一种情况是不能成功输入的 rn请问这是为什么?
c 语言的标准输入输出,scanf,printf
printf scanf  里面的f就是format的意思就是格式化,格式化输入,格式化输出 0:printf 函数的定义(java 的输出是System.out.println();) int printf(char *format,arg1,arg2,...); ...代表是可变参数 格式化字符串包含两部分内容:普通字符和转换说明,普通字符原样输出,转化字符以百分比开始,后面是若
C语言printf和scanf,求大神!
谁能给讲讲printf 和scanf 的数据输出和输入rn比如 scanf(“%d”,&a); printf("%df",a);输入1rn【计算机按整形类型读入数据,然后在以a为名的4个字节的内存单元中以二进制存入数据,然后printf 从内存读取数据,按整形输出到屏幕】。。。。是否可以这样理解?师否可以分的更细?输出到屏幕的1 是什么?是字符吗?rn主要是看到sprintf函数 ,如下rn char first[MAX];rn char last[MAX];rn char formal[2 * MAX + 10];rn float prize;rn puts("Enter first name");rn gets(first);rn puts("enter last name");rn gets(last);rn puts("enter prize");rn scanf("%f", &prize);rn sprintf(formal, "%s %-19s:$%6.2f\n", last, first, prize);//数据类型不一致,prize和formalrn puts(formal);rn为什么可以将实行数据存入 字符型数组????rn不太理解了。
C语言scanf()和gets()及printf()和puts()的区别
一、scanf()和gets() 1.scanf() 所在头文件:stdio.h 语法:scanf(“格式控制字符串”,变量地址列表); 接受字符串时:scanf(“%s”,字符数组名或指针); 2.gets() 所在头文件:stdio.h 语法:gets(字符数组名或指针); 两者在接受字符串时: 1.不同点: scanf不能接受空格、制表符Tab、回车等; 而gets能够
【C语言】第二课:printf与scanf,基本运算
【C语言】第二课时:printf()和scanf(),基本运算符号 一个程序想要具有实用性必然离不开输入和输出两个功能 而printf()与scanf()是在C语言中实现这两个功能的函数 输出函数printf() 格式:printf(“输出语句,用%+类型插入变量”,需要插入的变量) 例: #include &quot;stdafx.h&quot; #include&amp;lt;stdio.h&amp;gt; int main(...
C语言--scanf()与printf()的区别--易混淆。
以下述温度转换程序为例: #include&amp;lt;stdio.h&amp;gt; int main(void) { float fahr = 0, celsius = 0; printf(&quot;请输入相应的华氏温度:&quot;); scanf(&quot;%f&quot;, &amp;amp;fahr); celsius = (5.0 / 9.0)*(fahr - 32.0); printf(&quot;相应的摄氏温度为:%f&quot;...
C语言奇妙之旅_printf();与scanf();
printf 和 scanf都是&amp;lt;stdio.h&amp;gt;函数库的函数   printf   在Hello world程序中, 大家已经知道了printf的基本用法。      printf(“字符串 格式输出字符 转义字符”);        什么是字符串           先了解一下字符吧, 字符就是 a, b, c什么的, 一个字符。           字符串就是很多...
C语言scanf和printf中%*s和
scanf里用*修饰符,是起到过滤读入的作用。比如一个有三列数值的数据,我只想得到第2列数值,可以在循环里用scanf(“%*d%d%*d”, a[i])来读入第i行的第2个数值到a[i]。   * 修饰符在printf中的含义完全不同。如果写成printf(“%6d”, 123),很多童鞋应该就不会陌生了,这是设置域宽的意思。同理,%6s也是域宽。* 修饰符正是用来更灵活的控制域宽。使用%*s...
C语言-printf()和scanf()中*的作用
printf中的作用 scanf中的作用printf()中*的作用在printf()中*充当变量的占位符/*使用变量控制输出字符宽度*/ #include <stdio.h> int main(void) { unsigned width,precision; int number = 256; double weight = 243.67; printf("Enter
C语言输入(scanf)输出(printf)函数
scanf和 printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。因此,这两个函数在括号中的参数都由以下两部分组成: 1) 格式控制串:格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。 2) 参数表:参数表中给出了输入或输出的变量。当有多个变量时,用英文逗号(,)分开 例如:printf("I have %d %s",num,th
关于scanf和printf字符串的问题
程序如下,运行环境为vc6:rnint main()rnrn char a[5];rn char b[5];rn while(1)rn rn printf("input a:");rn scanf("%s",a);rn printf("output a:%s\n",a);rn printf("input b:");rn scanf("%s",b);rn printf("output a:%s\n",a);rn printf("output b:%s\n",b);rn rnrn为什么我输入超过5个字符超过的部分还是会打印出来?还有,当b输入超过7个字符时a的内容也受到影响?
关于C语言printf的问题
如果定义一个int a=336;float b=65636;rnrn1. printf("%c",a);可以打印出一个ASCII码为336-256=80的字符即P,这是不是说明打印的时候系统只截取了int型数据的后八位也就是最后一个字节。rnrn而rnrn2. printf("%d",b); 打印结果为0,查资料说系统把float型数据按照8字节进栈,然后printf函数解析%d只截取了float型数据的前4个字节或前2个字节(因编译器int长度的不同而定),所以结果为0。rnrn问题来了,就是第一种情况系统为什么截取int型数据的最后面一个字节,而第二种情况截取前边的字节呢?rnrn简言之就是系统截取数据时,什么情况从前边截取什么情况从后边截取?rnrn不知道高手们明白了没?
C语言Printf格式详解
C语言Printf格式详解 C语言Printf格式详解
关于scanf和printf的参数
为什么printf里面既可以用指针,又可以用变量,而scanf就不能,只能用指针,不能用变量呢?
关于printf和scanf
最近在自学c,但看的那本书没有详细说明printf和scanf的引号参数用法,如printf("%4d",x),这个%4d是什么意思。请其他的具体用法也详细说明,在此谢了!
C语言 scanf的问题!
#include rnint main(void)rnrn char ch;rn scanf("%c",&ch);rn for(ch='$';ch != 'g';scanf("%c",&ch))rn putchar(ch);rnrn在第一个scanf("%c",&ch)rn连续输入Go well,young man!rn后面的o well....数扰保存在那里呢?rn从调试里看到第二个scanf("%c",&ch)rn&ch都是取同一个地址,就说是GO well,young man!会自动填充到&ch里
关于scanf的格式问题
#include "stdio.h"rn main()rn int a,b; printf("请输入a,b:") ; scanf("%d%d",&a,&b);rn if(a>b)rn printf("a>b\n");rn elsern if(abrn请问这个是为什么?rn
c语言之scanf,printf
scanf函数和printf函数是c语言中常用的输入和输出函数,现在总结一下有关这两个函数的用法。 1.scanf 功能:标准输入函数,可以从标准输入设备(键盘)读取输入信息 用法:int scanf(const char *format,…) 例1: int buffer=0; scanf(“%x”,&amp;amp;amp;buffer); printf(“%d\n”,buffer); 输...
重新学习C语言——关于printf 和scanf语法和语句
/* Printf printf函数称为格式输出函数,主要体现在最后一个字母f(format)格式上 四则运算符 C符号 意义        +  +    加 -  -  减 ×  *  乘 ÷  /  除 null              %               取余 例:  1 % 3 = 1···1          6 % 3
c语言关于printf输出字符串以及scanf的一些问题
代码一nn```n #include nchar ch1[] = 'a', 'b', 'c';nchar ch2[] = "abc";nint main(void)nn printf("String ch1 is: %s\n", ch1);n printf("String ch2 is: %s\n", ch2);nn return 0;nn```n代码二nnn```n #include nint main(void)nchar ch1[] = 'a', 'b', 'c';nchar ch2[] = "abc";nn printf("String ch1 is: %s\n", ch1);n printf("String ch2 is: %s\n", ch2);nn return 0;nn```n**代码一输出的第一行和第二行都是abc,代码二第一行是abc和乱码第二行是abcn请问这是为什么按说ch1没有结束符呀**n代码三nnn```n scanf("%d",&x); /*此时输入一串数字并回车,变量x将正常接收到输入的整数*/ nscanf("%d",&y); /*若此时输入的是字母而不是数字,比如输入“s”并回车*/ n/*那么变量y将不会接收到任何字符或数字,其值保持原样,不发生任何改变*/ nscanf("%c",&a);n```n请问代码3中的s为什么会被a接收?输入的是字母而不是数字的话,应该等待用户nnn代码四n```n #include nint main()nint x,y;nscanf("%d",&x);nscanf("%d",&y); nprintf("%d%d",x,y);n return 0;nnnnn```n代码四中 如果输入:s 1n为什么两个出来都是乱码?1难道没有被x接受吗?n
scanf 和 printf 的返回值问题
1.关于printf()函数的返回值问题,来看一道例题:int main(){ printf(&quot;%d\n&quot;,printf(&quot;0123&quot;));        printf(&quot;%d\n&quot;,printf(&quot;sdd&quot;));        printf(&quot;%d\n&quot;,printf(&quot;%d&quot;,printf(&quot;43&quot;))); return 0;}运行结果:1234sdd34321解析
scanf和printf问题
用scanf和pintf 来输入 char型变量和 vector型变量然后显示出来 谁能帮我写一下啊~~rn谢谢了
C 【printf 和 scanf 函数的使用】
对于printf函数,我们主要要掌握printf函数的输出格式。         而对于scanf函数,我们则要知道几个输入过程中的错误输入情况和scanf函数的实现原理。  (1)printf 函数     printf 中 格式控制 部分 的完整格式:    "% - 0 m.n l或h 格式字符"        下面对组成格式说明的各项加以说明:              
scanf 和 printf的奇怪问题
printf的奇怪问题,输出时只有%s没有变量,居然没有出错。rn怀疑是将最后一个scanf输入的内容缓存在某处,后面紧跟的输出语句直接输出了rn不知原理是什么,rn[code=C/C++]rn#include "string.h"rnint main()rnrn char temp33[10];rn char temp[10];rnrn int num=0,i=0;rnrn printf("the input is === %s \n");//这里没输出rn memset(temp, 0, sizeof(temp));rn rn //printf("the input is === %s \n"); //这行打开会出错rn printf("please input a word ");rn scanf("%s",temp33);fflush(NULL);rn scanf("%s", temp);rn printf("-----------------------------------\n");rn //printf("the input is === %s \n", temp);rn printf("the input is === %s \n");fflush(NULL); //这里输出了temp2rn printf("the input is === %s \n");fflush(NULL); //这里输出了temp2 rn for(i=0;i<10;i++)rn rn printf("temp[%d] === [%c]\n", i, temp[i]);rn rn //printf("the input is ===== %s \n"); //这里打开也出错rnrn[/code]rn输入和输出结果如下rnthe input is === rnplease input a word asdffrngggggrn-----------------------------------rnthe input is === ggggg rnthe input is === ggggg rntemp[0] === [g]rntemp[1] === [g]rntemp[2] === [g]rntemp[3] === [g]rntemp[4] === [g]rntemp[5] === []rntemp[6] === []rntemp[7] === []rntemp[8] === []rntemp[9] === []
printf与scanf的执行顺序问题
[code=C/C++]#include rnint side (int x);rnchar character(char t);rnint main ()rnrn int n;rn char c;rn printf("the number is :\n");rn scanf("%d",&n);rn printf("the char is:");//为什么执行程序时这两步没有rn scanf("%c",&c);//作用?即没有打出the char is:和让我输入字符的过程rn side(n);rn character(c);rnrnint side (int x)rn int i=0,j;rn for(i=0;i
请教 scanf 和 printf 的问题
请教 scanf 和 printf 的问题rn#includernmain()rn char la;rn [color=#FF0000]float a,b,c;rn printf("请输入你要计算的内容\n"); rn scanf("%f%f%f",&a,&b,&c);rn printf("%f,%f,%f\n",a,b,c);[/color] printf("请输入字符\n");rn scanf("%c",&la);rn printf("%c",la);rn rn system("pause");rnrnrnrn将红线部分删除可以,完成输入字符的操作.rn可是加上红色部分,我就没机会输入字符,这是为什么,请行家帮忙解惑,谢谢!
scanf()和printf()的问题
#include rnrnint main()rnrn int num[2];rn scanf ("%d %d",num[0],num[1]);rn printf ("%d %d",num[0],num[1]);rn return(0);rnrnrn就着么简单的程序,运行时毛病多得不得了。我输入12 32,它输出64 3129???为什么啊?rnrn谢谢大家!
C语言printf的问题
#includern#define PAGES 931rnint main()rnrn const double RENT=3852.99;rn printf("*%d*\n",PAGES);rn printf("*%2d*\n",PAGES);rn printf("*%10d*\n",PAGES);rn printf("*%-10d*\n",PAGES);rn printf("*%f*\n",RENT);rn printf("*%e*\n",RENT);rn printf("*%4.2f*\n",RENT);rn printf("*%3.1f*\n",RENT);rn printf("*%10.3e*\n",RENT);rn printf("*%+4.2f*\n",RENT);rn printf("*%010.2f*\n",RENT);rn return 0;rnrn输出是这样的。[img=https://img-bbs.csdn.net/upload/201411/19/1416410850_1262.jpg][/img]rn倒数第三行的输出 书上是* 3.863e+03*,请各位给我解释一下,谢谢大家。rn rn[code=c][/code]
关于printf格式的问题
VmSize: 1424 kBrnVmLck: 0 kBrnVmRSS: 524 kBrnVmData: 44 kBrnVmStk: 8 kBrnVmExe: 12 kBrnVmLib: 1320 kBrn向这样把数字右对齐的格式rn请问使用printf的参数才能打印出来
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数