文章目录
- 基于函数库
-
- 输出
- 输入
- 基于类库
-
- 输出
- 输入
基于函数库
(cstdio/stdio.h)
输出
//输出单个字符(包括空格回车),返回输出的字符或EOF(操作失败,下同)
int putchar(int ch);
//把p所指向的字符串输出(截止至空字符‘\0’,用回车代替‘\0’,即自动换行),返回非负整数或EOF
int puts(const char *p);
//输出基本数据类型,返回输出的字符个数或负数(操作失败)
int printf(const char *format [,<参数表>]);
format:
format | 类型 | 输出格式 |
---|---|---|
%c | int | 字符 |
%d | int | 有符号十进制整数 |
%o | unsigned int | 无符号八进制整数 |
%u | unsigned int | 无符号十进制整数 |
%x | unsigned int | 无符号十六进制整数(abcde) |
%X | unsigned int | 无符号十六进制整数(ABCDE) |
%e | double | [-]d.dddd e[+/-]ddd |
%E | double | [-]d.dddd E[+/-]ddd |
%f | double | [-]dddd.dddd |
%s | char * | 字符串 |
%% | 字符‘%’ |
例子:
char *ch="t\0";putchar(ch[0]);putchar(ch[1]);puts(ch);puts(&ch[0]);puts(&ch[1]);printf("ch:%s, ch[0]:%c, ch[1]:%c\n", ch, ch[0], ch[1]);
输入
//读入单个字符(包括空格回车),返回输出的字符或EOF(操作失败,下同)
int getchar();
//输入基本数据类型(截止于空格、回车、制表符Tab),返回保存的数据个数或负数(操作失败)
int scanf(const char *format [,<参数表>]);
基于类库
iostream/string
输出
//空字符‘\0’结尾
cout
//输出一个字符
cout.put(char ch)
//输出p所指向的内存空间中count个字节
cout.write(const char *p, int count)
输入
//空字符‘\0’结尾
cin
//输入一个字符
cin.get(char &ch)
//输入到p所指向的count字节(实际为count-1个,最后一个为’\0’),默认结束符为\n(可自己设置)
cin.getline(char *p,int count,char delim=’ \n’)
//输入到p所指向的内存空间中count个字节,可读入空格
cin.read(char *p,int count)
//string类中函数,输入到str,默认结束符为\n(可自己设置)
getline(istream &is,string &str,char delim)
例子:
char *ch1=new char[4],*ch2 = new char[4],*ch3 = new char[4];string str;cout << "输入ch1:" << endl;cin.get(ch1[0]);cin.get(ch1[1]);cin.get(ch1[2]);ch1[3] = '\0';cout << "输出:" << endl;cout << "ch1=" << ch1 << endl;getchar();//读取回车键cout << "输入ch2:" << endl;cin.getline(ch2, 4);cout << "输出:" << endl;cout << "ch2=" << ch2 << endl;cout << "输入ch3:" << endl;cin.read(ch3, 3);ch3[3] = '\0';cout << "输出:" << endl;cout << "ch3=" << ch3 << endl;getchar();cout << "输入str:" << endl;getline(cin, str);cout << "输出:" << endl;cout << "str=" << str << endl;cout << "str[3]=" << str[3];//测试str最后自动添加了‘\0’