C/C++学习笔记:输入输出

C语言输出函数

在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:

  • puts():只能输出字符串,并且输出结束后会自动换行。

    puts("I am a student.");
    
  • putchar():只能输出单个字符。

  • printf():可以输出各种类型的数据。

C语言输入函数

程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入:

  • scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。

  • getchar()、getche()、getch():这三个函数都用于输入单个字符。

  • gets():获取一行数据,并作为字符串处理。

scanf() 是最灵活、最复杂、最常用的输入函数。

就目前学到的知识而言,int、char、float 等类型的变量用于 scanf() 时都要在前面添加&,而数组或者字符串用于 scanf() 时不用添加&,它们本身就会转换为地址。

scanf可输入带空格的字符串

#include <stdio.h>
#include <stdlib.h>
int main{
    char str[20]={0};
    scanf("%[^\n]",str); //scanf可以输入空格,以回车作为结束
    puts(str);
    return 0;
}

输入输出流

使用cin, cout 来进行输入输出,记得添加头文件和命名空间

//输入三个整数x,y,z,请把这三个数由小到大输出。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
//要使用输入输出流,必须包含下面两句
#include <iostream>
using namespace std;

int main(){
    int x,y,z;
    cin >> x >> y >> z;;
    int max = (x>=y) ? x : y;
    max = (max>=z) ? max : z;

    int min = (x<=y) ? x : y;
    min = (min<=z) ? min : z;

    cout << "The maximum number is " << max << " among the input numbers" << endl;
    cout << "The minimum number is " << min << " among the input numbers" << endl;
//也可写作
//cout << "The maximum number is " << max << " among the input numbers" << endl << "The minimum number is " << min << " among the input numbers" << endl;
    return 0;
}

endl 的作用与C语言换行符 \n 相同,是end of line的缩写;<< 称为插入运算符,>> 称为提取运算符。

不必使用格式控制符 %d,%f 等等,系统会自动识别。

输入带空格的string的函数:getline(cin,str)
#include<iostream>  
#include<string>  
using namespace std; 

int main()
{
	string str[3];
	cout<<"please input the str"<<endl;
    for(int i=0;i<3;i++){
        getline(cin,str[i]);
        int n=str[i].length();     //  输出字符串长度
        cout<<"str[" << i << "] length:"<<n<<endl;
    }
    return 0;
}

输出

please input the str
China is strong!
str[0] length:16
USA is weak!
str[1] length:12
I am Chinese!
str[2] length:12

浮点数的输出

小数也可以使用 printf 函数输出,包括十进制形式和指数形式,它们对应的格式控制符分别是:
%f 以十进制形式输出 float 类型;
%lf 以十进制形式输出 double 类型;
%e 以指数形式输出 float 类型,输出结果中的 e 小写;
%E 以指数形式输出 float 类型,输出结果中的 E 大写;
%le 以指数形式输出 double 类型,输出结果中的 e 小写;
%lE 以指数形式输出 double 类型,输出结果中的 E 大写。
%g  会对比小数的十进制形式和指数形式,以最短的方式来输出小数,让输出结果更加简练。所谓最短,就是输出结果占用最少的字符。

转义字符

\t 水平制表符,等同于tab键
\n 换行符
\' 输出单引号
\" 输出双引号
\\ 输出反斜杠

转义字符示例:

#include <stdio.h>
int main(){
    float a = 0.00001;
    puts("C\tC++\tJava\n\"C\" first appeared!");
    printf("%%%f\n",a);
    return 0;
}

运行结果:
C C++ Java
“C” first appeared!
%0.000010

☆输入输出流模板

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    cout<<setiosflags(ios::left|ios::showpoint);  // 设左对齐,以一般实数方式显示
    cout.precision(5);       // 设置除小数点外有五位有效数字 
    cout<<123.456789<<endl;
    cout.width(10);          // 设置显示域宽10 
    cout.fill('*');          // 在显示区域空白处用*填充
    cout<<resetiosflags(ios::left);  // 清除状态左对齐
    cout<<setiosflags(ios::right);   // 设置右对齐
    cout<<123.456789<<endl;
    cout<<setiosflags(ios::left|ios::fixed);    // 设左对齐,以固定小数位显示
    cout.precision(3);    // 设置实数显示三位小数
    cout<<999.123456<<endl; 
    cout<<resetiosflags(ios::left|ios::fixed);  //清除状态左对齐和定点格式
    cout<<setiosflags(ios::left|ios::scientific);    //设置左对齐,以科学技术法显示 
    cout.precision(3);   //设置保留三位小数
    cout<<123.45678<<endl;
    return 0; 
}

输出结果

123.46
****123.46
999.123
1.235e+02
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值