c3---scanf

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    // 要求: 存储用户输入的整数
    // 1.用户输入的整数确定吗? 不确定 --> 定义变量
    // 2.如何接收用户输入的整数? scanf函数
    // scanf格式: scanf("格式化字符串", 列表项); --> scanf("%i", 变量);
    
    // 1.定义变量
    int number;
    // 2.利用scanf函数接收用户输入的数据
    scanf("%i", &number);// 注意: 必须告诉scanf函数变量的详细地址, 才能存储用户输入的数据
    // 3.输出接收到的数据
    printf("number = %i", number);
     
    
    // 要求从控制台接收用户输入的两个整数, 然后计算两个整数的和
    
    // 0.提示用户输入数据
    printf("亲, 请输入第一个数字, 以回车键结束
");
    // 1.定义两个变量保存用户输入的数据
    int num1, num2;
    // 2.利用scanf接收用户输入的数据
    // 2.1接收第一个数
    scanf("%i", &num1);
    printf("亲, 请输入第二个数字, 以回车键结束
");
    scanf("%i", &num2);
    
    // 3.将接收到的两个数相加
    int result = (num1 + num2);
    
    // 4.输出两个数验证结果
    printf("result = %d", result);
     
    
    int num1, num2;
    num1 = num2 = 10;
    printf("num1 = %i, num2 = %i", num1, num2);
     
    
    
    // 0.提示用户输入数据
    printf("亲, 请输入两个数字, 以回车键结束
");
    // 1.定义两个变量保存用户输入的数据
    int num1, num2;
    // 2.利用scanf接收用户输入的数据
    // 注意: 利用scanf接收多个数据的时候, 输入的内容要求和"格式化字符串"中的一模一样
    // 如果输入的数据与格式化字符串中的不匹配, 那么scanf函数会自动终止
//    scanf("%i,%i", &num1, &num2);
    // 如果多个数据之间没有其它字符, 那么可以利用 空格, 回车, table来作为分隔
    // 但是, 如果格式化字符串中有%c除外
//    scanf("%i%i", &num1, &num2);
    char charValue;
    // 输入: 123-->num1, a -->charValue, 456-->num2
    // 技巧: 无论想接收什么类型的数据, 只要有需要一次性接收多个, 就给每一个数据之间加上固定的符号作为分隔符(例如: ,)
    scanf("%i,%c,%i", &num1, &charValue, &num2);
    scanf("%i-%c-%i", &num1, &charValue, &num2);
    
    // 3.将接收到的两个数相加
//    int result = (num1 + num2);
    
    // 4.输出两个数验证结果
//    printf("result = %d", result);
    
    printf("num1 = %i, char = %c , num2 = %i", num1, charValue, num2);
    
    
    int number, number2;
    // 
代表换行
    // 如何告诉scanf函数我们输入完毕? 回车 == 

    // 因为回车是scanf的结束符, 所以不能在scanf的格式化字符串末尾写上

    // 如果不小心把
放到了scanf格式化字符串的末尾, 也可以破, 原样输入或输入一个不匹配的类型
    scanf("%i
%i
", &number, &number2);
    printf("number = %i , number2 = %i
", number, number2);
    return 0;
}
//
//  main.c
//  scanf实现原理
//
//  Created by xiaomage on 15/6/3.
//  Copyright (c) 2015年 xiaomage. All rights reserved.
//

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    // 添加断点快捷键: command + 
    
    // 1.提醒用户
//    printf("请输入两个整数 , 整数之间用逗号隔开, 使用回车结束
");
    // 2.定义变量保存用户输入的数据
    int num1, num2;
    char charValue;
    // 3.接收用户输入的数据
    // num1 = 123, charValue = + , num2 = 456
    scanf("%i%c%i", &num1, &charValue, &num2);
    // 4.求差
//    int result = num1 - num2;
    // 5.输出验证
//    printf("result = %i
", result);
    printf("num1 = %i, cahrValue = %c, num2 = %i
", num1, charValue, num2);
    
    // 用户输入-->输入缓冲区-->scanf
    
    char charValue2;
    int num3;
    // scanf只要输入缓冲区中有内容, 就不会要求用户输入数据
    scanf("%c%i", &charValue2, &num3);
    printf("charVaue2 = %c, num3 = %i
", charValue2, num3);
    
    return 0;
}
原文地址:https://www.cnblogs.com/yaowen/p/7375417.html