1. 单字符输入输出
1.1 putchar
- int putchar(int c)
- 向标准输出 写一个字符
- 返回写了几个字符,EOF(-1)表示写失败
1.2 getchar
- int getchar(void);
- 从标准输入 读入一个字符
- 出错返回EOF(-1)
- 停止输入
- Windows:Ctrl + Z
- Unix:Ctrl + D
Ctrl + C 是退出运行的程序
#include<stdio.h>
int main(int argc, char const *argv[])
{
int ch;
while((ch = getchar()) != EOF){
putchar(ch);
}
printf("---------over\n");
return 0;
}
键盘输入字符,通过shell传给电脑内部做运算,当输入 Ctrl + C 或 Ctrl + Z 时,shell拦截并做对应处理
2. 字符串数组
- char **a
- a是一个指针,指向另一个指针,那个指针指向一个字符(串)
- char a[][]
- char *a[] 是存储大小不确定的数组,a[0]指向一个区域,存储大小不确定
#include<stdio.h>
int main(int argc, char const *argv[])
{
// [Error] declaration of 'a' as multidimensional array must have bounds for all dimensions except the first
// 多维数组 除了第一个,要指定大小
// char a[][] = {
// "Hello",
// };
// a[0] 存储的是 Hello\0
char a[][10] = {
"Hello",
};
// [Error] initializer-string for array of chars is too long [-fpermissive]
// 定义一个数组 b[][10],每个元素是 char[10],长度应该在 0-10之间,超过会报错
// char b[][10] = {
// "Hello",
// "abcdefghijklmnopq"
// };
return 0;
}
3. main参数
- int main(int argc, char const *argv[])
- argv[0] 是命令本身
- 当使用 Unix的符号链接时,反映符号链接的名字
#include<stdio.h>
int main(int argc, char const *argv[])
{
int i;
for(i = 0; i < argc; i++){
printf("%d::%s\n", argv[i]);
}
return 0;
}