C语言 scanf函数求助

captainmiao 2013-08-03 09:21:52
#include<stdio.h>
#include<stdlib.h>

int main (void)
{
int i;
scanf("%d\n",&i);
printf("%d",i);

system("pause");
return 0;
}


本人菜鸟,环境是VS2010,每次运行到scanf("%d\n",&i);后,能够输入一个整数,但是就死在这里(如上图)不能向下执行了,求大神帮助,万分感谢。
...全文
176 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
max_min_ 2013-08-04
  • 打赏
  • 举报
回复
引用 12 楼 amaomiaomiao 的回复:
[quote=引用 11 楼 max_min_ 的回复:] [quote=引用 10 楼 amaomiaomiao 的回复:] [quote=引用 5 楼 luohao1213 的回复:] 你scanf的参数家个换行符 \n 做什么,多此一举呢。倒是你的printf的参数那可以加个 \n,这样dos界面上的输出可以更好看些。
恩,你说的很对。是我在编程序的时候的思维有问题。谢谢你。不过我试了一下,scanf("%d\n",&i);必须要输入两次才能正确输出,为什么?我摁了两次“enter”键为什么不行。[/quote]

scanf("%d\n",&i);//输入两次会取第一次会有效值的,不是回车两次的,
                 //不过你这种写法不对,一般这里不会加'\n',
printf("%d",i);//这个地方你就要加了,因为你后面是一直停在这个地方了,
               // 你输出的数据在缓冲区里,没有刷出来'\n'还有这个功能的,刷新缓冲区的
            
[/quote]是的 谢谢你。我看了scanf的语法,明白了其中的缘缘由。[/quote] 问题解决了,搞清楚了就好! 为了论坛管理,结贴吧!右上方或者右下方 都有结贴按钮的!就可以散分了
captainmiao 2013-08-04
  • 打赏
  • 举报
回复
引用 11 楼 max_min_ 的回复:
[quote=引用 10 楼 amaomiaomiao 的回复:] [quote=引用 5 楼 luohao1213 的回复:] 你scanf的参数家个换行符 \n 做什么,多此一举呢。倒是你的printf的参数那可以加个 \n,这样dos界面上的输出可以更好看些。
恩,你说的很对。是我在编程序的时候的思维有问题。谢谢你。不过我试了一下,scanf("%d\n",&i);必须要输入两次才能正确输出,为什么?我摁了两次“enter”键为什么不行。[/quote]

scanf("%d\n",&i);//输入两次会取第一次会有效值的,不是回车两次的,
                 //不过你这种写法不对,一般这里不会加'\n',
printf("%d",i);//这个地方你就要加了,因为你后面是一直停在这个地方了,
               // 你输出的数据在缓冲区里,没有刷出来'\n'还有这个功能的,刷新缓冲区的
            
[/quote]是的 谢谢你。我看了scanf的语法,明白了其中的缘缘由。
max_min_ 2013-08-04
  • 打赏
  • 举报
回复
引用 10 楼 amaomiaomiao 的回复:
[quote=引用 5 楼 luohao1213 的回复:] 你scanf的参数家个换行符 \n 做什么,多此一举呢。倒是你的printf的参数那可以加个 \n,这样dos界面上的输出可以更好看些。
恩,你说的很对。是我在编程序的时候的思维有问题。谢谢你。不过我试了一下,scanf("%d\n",&i);必须要输入两次才能正确输出,为什么?我摁了两次“enter”键为什么不行。[/quote]

scanf("%d\n",&i);//输入两次会取第一次会有效值的,不是回车两次的,
                 //不过你这种写法不对,一般这里不会加'\n',
printf("%d",i);//这个地方你就要加了,因为你后面是一直停在这个地方了,
               // 你输出的数据在缓冲区里,没有刷出来'\n'还有这个功能的,刷新缓冲区的
            
captainmiao 2013-08-04
  • 打赏
  • 举报
回复
引用 5 楼 luohao1213 的回复:
你scanf的参数家个换行符 \n 做什么,多此一举呢。倒是你的printf的参数那可以加个 \n,这样dos界面上的输出可以更好看些。
恩,你说的很对。是我在编程序的时候的思维有问题。谢谢你。不过我试了一下,scanf("%d\n",&i);必须要输入两次才能正确输出,为什么?我摁了两次“enter”键为什么不行。
captainmiao 2013-08-04
  • 打赏
  • 举报
回复
引用 3 楼 AnYidan 的回复:

scanf("%d\n",&i);
printf("%d",i);

scanf("%d",&i);
printf("%d\n",i);


恩 谢谢你,你说的是对的
captainmiao 2013-08-04
  • 打赏
  • 举报
回复
引用 2 楼 qzf362269994 的回复:
scanf("\n");就要匹配换行符
嗯,你说的是对的,谢谢你。这样是不是就能给你加分了?怎样 才能给你加分?
qzf362269994 2013-08-04
  • 打赏
  • 举报
回复
引用 6 楼 amaomiaomiao 的回复:
引用 1 楼 qzf362269994 的回复:
scanf("%d\n",&i);该为scanf("%d",&i);
pk ok,你说的是对的,我输入的时候就是想着换行这件事情了,现在知道这就是症结所在。谢谢你。我是不是要给你分?这样可不可以得到?怎么样才能给你?
按结贴就行了
captainmiao 2013-08-04
  • 打赏
  • 举报
回复
引用 1 楼 qzf362269994 的回复:
scanf("%d\n",&i);该为scanf("%d",&i);
pk ok,你说的是对的,我输入的时候就是想着换行这件事情了,现在知道这就是症结所在。谢谢你。我是不是要给你分?这样可不可以得到?怎么样才能给你?
秋千坠丶 2013-08-03
  • 打赏
  • 举报
回复
你scanf的参数家个换行符 \n 做什么,多此一举呢。倒是你的printf的参数那可以加个 \n,这样dos界面上的输出可以更好看些。
一根烂笔头 2013-08-03
  • 打赏
  • 举报
回复
scanf格式串问题 参加资料: http://www.cplusplus.com/reference/cstdio/scanf/
AnYidan 2013-08-03
  • 打赏
  • 举报
回复

scanf("%d\n",&i);
printf("%d",i);

scanf("%d",&i);
printf("%d\n",i);


qzf362269994 2013-08-03
  • 打赏
  • 举报
回复
scanf("\n");就要匹配换行符
qzf362269994 2013-08-03
  • 打赏
  • 举报
回复
scanf("%d\n",&i);该为scanf("%d",&i);

69,381

社区成员

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

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