输入:
-
单字符输入:getchar ()
char c; c = getchar();
以下两行代码可以互相代替:
putchar(getchar()); printf("%c",getchar());
-
字符串输入:gets ()
读取键盘输入的字符串,并把读入结果放到指针变元指向的地址
char str[20]; gets(str); printf("%s\n",str);
char str[20]; char *string = str;//指针需初始化 gets(string); printf("%s\n",string);
-
格式化输入:scanf ()
scanf要求传入的是变量地址,&为取地址运算符;
e.g
scanf("%d %*d %d",&a,&b);//输入1 2 3时,把1赋予a,2被跳过,3赋予b scanf("%4d%4d",&a,b);//输入12345678时,把1234赋予a,5678赋予b
scanf()何时用&
scanf传入的必须是指针,也就是地址。比如int a,就要写成&a。
但是如果是数组,数组符号表示的就是数组的首地址(更准确的说,数组本身表示的是数组首元素的地址)。
int a[10];a就表示a[0]的地址;a+3表示a[3]的地址;
1.对于数组有两种使用方法:
scanf("%d",&a[i]); scanf("%d",a+i);
2.如果用scanf()读取基本变量类型的值,在变量名前加上&
scanf("%c",&a);
3.如果scanf()是把字符串读入字符数组中,不要使用&(因为字符串变量名在 scanf 语句里表示指针 (地址))
scanf("%s",love);
(scanf读入char字符时不会跳过空格)
输出:
-
单字符输入:putchar ()
char a = 'A'; putchar(a);
以下两行代码可以互相代替:
putchar(getchar()); printf("%c",getchar());
-
字符串输入:gets ()
读取键盘输入的字符串,并把读入结果放到指针变元指向的地址
char* str = "Hello, world!"; puts(str);
puts("Hello, world!");
-
格式化输入:printf ()