c语言中scanf("\n%c",&a);和scanf("\n");中的\n有什么作用啊

#include<stdio.h>
xj(int x);
char i,a,b;
void main()
{
scanf("%c",&i);
printf("%c\n",i);
scanf("\n%c",&a);
printf("%c",a);
}
和#include<stdio.h>
xj(int x);
char i,a,b;
void main()
{
scanf("%c",&i);
printf("%c",i);
scanf("%c",&a);
printf("%c",a);
}为什么运行结果不一样

在c语言中,scanf("%d%*c", &n);中%d表示读整数,%*c表示忽略掉一个字符型的输入项,&n表示对象n在内存中的地址。scanf("%d%*c", &n);整体表示输入两个数,并且忽略掉第二个字符型的输入项,然后将输入的对象存入n。

在C语言的scanf函数中,格式字符串的一般形式为:%[*][输入数据宽度][长度]类型(其中有方括号[]的项为任选项)。不同的格式符类型有不同的功能。

扩展资料

C语言scanf函数的语法规则:

1、语法

#include <stdio.h>

int scanf( const char *format, ... );

类似函数有

int scanf(const char *format, ...);

int fscanf(FILE *stream, const char *format, ...);//定输入流

int sscanf(const char *str, const char *format, ...);//指定缓存区

2、规则

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始。

参考资料来源:百度百科——scanf

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-26
是用来换行的
比如:
("1\n1")打出来是
1
1
("1 1")打出来是
1 1本回答被网友采纳
第2个回答  2010-11-27
假如是下面的数组,应该是
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[j][k]);
当然,这样你看不到要求输入的提示,scanf("%d",&a[j][k]); 前边还应该加一条语句,变成这样:
int a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
printf("enter a number:");
scanf("%d",&a[j][k]);
}

不是,每次只能输入一个数,因为a[i][j]只是代表的一个数组中的一个元素,也就是一个数。
第3个回答  2010-11-26
\n是转义符,表示换行,这样打印出来的东西比较清晰
第4个回答  2010-11-29
\n 换行
这是一个转义字符(也是一种字符)形式像\0是结束标记一样。
相似回答