scanf()函数 输入格式

Jerrylearnc 2008-07-01 08:19:24
#include<stdio.h>
main()
{
int a,b,c;
long int l1,l2,l3;
float x,y,z;
double d1,d2,d3;
scanf("%ld%ld",&a,&b);
printf("a=%d,b=%d",a,b);
getch();
return 0;
}
我在学习scanf()函数的时候
看到书上说 不能用长格式输入短变量 就写了上面的程序 但是我在 win-tc编译时没有出错 运行也成功了 但是在Turbo C上就不行了 运行出错

书上说
(1)用短格式输入长变量时会出错
scanf("%d%d",&l1,&l2); /*l1 l2是long int 类型*/
(2)用长格式输入短变量时会出错
scanf("%ld%ld",&a,&b); /*a b是 int 类型*/
不知道对不对

...全文
273 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jerrylearnc 2008-07-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Jerrylearnc 的回复:]
引用 8 楼 Jerrylearnc 的回复:
我在TC上也试了一下 也是显示sizeof(int)=2
这是为什么
谢谢
非常感谢
[/Quote]
Jerrylearnc 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Jerrylearnc 的回复:]
引用 6 楼 jillnicky 的回复:
引用 1 楼 artman 的回复:
tc int 是16位的 long 是32位的
win-tc int long 都是32位的

嘿嘿!~以后这种问题,楼主输出sizeof之后,看看结果


#include <stdio.h>
main()
{
printf("sizeof(int)=%d",sizeof(int));
getch();
return 0;
}
我用sizeof()在win-tc上测试了一下 怎么显示的结果是 sizeof(int)=2啊
不是说在win-tc上int是32位吗 谢谢
[/Quote]
[color=#FF6600]又测试了一下 还是显示 sizeof(int)=2

谢谢
非常感谢
xzdwfwt111 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 artman 的回复:]
tc int 是16位的 long 是32位的
win-tc int long 都是32位的
[/Quote]
Jerrylearnc 2008-07-02
  • 打赏
  • 举报
回复
我在TC上也试了一下 也是显示sizeof(int)=2
这是为什么
谢谢
非常感谢
Jerrylearnc 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jillnicky 的回复:]
引用 1 楼 artman 的回复:
tc int 是16位的 long 是32位的
win-tc int long 都是32位的

嘿嘿!~以后这种问题,楼主输出sizeof之后,看看结果
[/Quote]

#include<stdio.h>
main()
{
printf("sizeof(int)=%d",sizeof(int));
getch();
return 0;
}
我用sizeof()在win-tc上测试了一下 怎么显示的结果是 sizeof(int)=2啊
不是说在win-tc上int是32位吗 谢谢
Jerrylearnc 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Jerrylearnc 的回复:]
我在TC上也试了一下 也是显示sizeof(int)=2
这是为什么
谢谢
非常感谢
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 artman 的回复:]
tc int 是16位的 long 是32位的
win-tc int long 都是32位的
[/Quote]
嘿嘿!~以后这种问题,楼主输出sizeof之后,看看结果
jy01807853 2008-07-01
  • 打赏
  • 举报
回复

//VS2008测试没任何问题
#include <stdio.h>
#include <conio.h>

int main()
{
int a,b, c;
long int l1,l2,l3;
float x,y,z;
double d1,d2,d3;
scanf("%ld%ld",&a,&b);
printf("a=%-10db=%-4d",a,b);
//getch();
return 0;
}

Jerrylearnc 2008-07-01
  • 打赏
  • 举报
回复
谢谢
非常感谢
artman 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Jerrylearnc 的回复:]
这样的话
在TC上 用长格式输入短变量时会出错 用短格式输入长变量时会出错
在win-tc上就不会出现上面的错误了
对吗
谢谢
非常感谢
[/Quote]
对!
Jerrylearnc 2008-07-01
  • 打赏
  • 举报
回复
这样的话
在TC上 用长格式输入短变量时会出错 用短格式输入长变量时会出错
在win-tc上就不会出现上面的错误了
对吗
谢谢
非常感谢
artman 2008-07-01
  • 打赏
  • 举报
回复
tc int 是16位的 long 是32位的
win-tc int long 都是32位的

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧