首页 > 其他分享 >《初学C语言第33天》

《初学C语言第33天》

时间:2023-12-20 11:07:00浏览次数:27  
标签:字符 读取 33 scanf C语言 初学 printf 格式 输入

//// ——————————————————————scanf的语法并举例说明

//// scanf是C语言中的一个标准输入函数,用于获取用户输入的数据,并赋值给变量。

////——————基本语法:

////scanf(format, variables);

////其中,format是格式控制字符串,用于指定输入数据的格式,variables是变量名,用于存储输入的数据。

////规则:

////1. scanf函数通过格式控制字符串来确定要读取的数据类型和数量,并根据格式控制字符串中的格式符进行匹配。

////2. 格式控制字符串中可以包含空格、制表符(\t)和换行符,用于忽略输入数据中的空白字符。

////3. 可以使用多个格式控制符来读取多个数据,各个格式控制符之间可以用空格、制表符和换行符(回车键)分隔。

////4. 当格式控制字符串中的格式符与输入的数据不匹配时,scanf函数会将匹配失败的数据留在输入缓冲区中,下一次读取时会再次尝试读取。

////5. 格式控制符中的 % 后面可以加上数字,表示最大字段宽度,即读取的字符数不会超过该数字。

////6. 在读取字符数组或字符串时,需要注意数组长度或字符串长度要足够大,以容纳输入的数据。

////   可以使用 % ns来指定最大字段宽度,其中n为数组或字符串长度。

////7. 遇到空格、制表符或换行符时,scanf函数会将输入的数据视为结束。

////8. 在读取字符数组或字符串时,可以使用 % [^\n]来指定读取到换行符之前的所有字符。

////9. 换行符指的是:回车键用scanf要考虑越界,输入是否标准,而且还要注意一些字符不能读入,比如空格,/n,

////   如果之后还有用到输入缓冲区的内容,可以用getchar等函数清理缓冲区

////例如,以下代码示例读取一个整数和一个浮点数:

//#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>

//int main()  

//{

//    int n;

//    float i;

//    printf("Enter an integer: ");//integer整数

//    scanf("%d", &n);

//    printf("Enter a floating point number: ");//floating point number浮点数

//    scanf("%f", &i);

//    printf("You entered: %d and %.0f\n", n, i);//%.2f:保留两位小数(自带四舍五入)//%.0f也可以使用,399.98——>400

//    return 0;

//}

////运行程序后,会提示用户逐个输入整数和浮点数,然后将输入的值打印出来。

//// 在输入时,需要注意输入的数据类型要与格式控制字符串中的格式符匹配,否则可能发生错误。



////换行符(回车键)

//#define _CRT_SECURE_NO_WARNINGS 1

//#include<stdio.h>

//void main()

//{

// char str[40];

// printf("lnput a string:");

// scanf("%[^\n]", str);  

// puts(str);

//}//输入字符串,会在敲回车时停止打印

//////当使用scanf("%c", &ch);来读取一个字符时,%c会读取第一个字符,并将其赋值给变量ch。%c会按照下列规则工作:

////1. %c会跳过任何空白字符(如空格、制表符、换行符等)。

////2. %c会读取输入中的下一个字符,并将其赋值给变量。

////3. %c不会自动在输入后面加入空字符'\0'。

////4. %c会将换行符('\n')当做普通字符读取,而不会自动跳过。

//#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>

//int main()  

//{

//    char ch;

//    printf("请输入一个字符:");

//    scanf("%c", &ch);

//    printf("您输入的字符是:%c\n", ch);

//    return 0;

//}//只打印输入的第一个字符



////制表符

////制表符\t表示8个空格符是不准确的,实际上制表符的作用是使光标定位到一个新的位置,

////新位置之前的输出占用的列数为8的倍数,即将光标移动至最接近8倍的地方,使之后的输出从光标处开始进行。

////1、当\t之前的字符所占输出列数在0~7时,将光标定位至第9列。

////2、当\t之前的字符所占输出列数在8~15时,将光标定位至第17列

//#include<stdio.h>

//void main() {

// printf("123456781234567812345678\n");   //line1

//  printf("\ta\n");                    //line2

//  printf("1234\ta\n");                //line3

//  printf("1234567\ta\n");             //line4

//  printf("12345678\ta\n");            //line5

//  printf("1234567812345\ta\n");       //line6

//  printf("123456781234567\ta\n");     //line7

//  printf("1234567812345678\ta\n");    //line8

//}

////结果为:(a与1对齐)

////123456781234567812345678

////        a

////1234    a

////1234567 a

////12345678        a

////1234567812345   a

////123456781234567 a

////1234567812345678        a

标签:字符,读取,33,scanf,C语言,初学,printf,格式,输入
From: https://blog.51cto.com/KKhahaha/8903925

相关文章

  • AtCoder 333 A-D
    AThreeThrees(打表importjava.util.*;classMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt();if(n==1)System.out.println(1);if(n==2)System.out.println......
  • C语言 不定长数组
    #include<stdio.h>#include<malloc.h>structstudent{intage;};structdata{intlen;//不占用空间structstudentstudents[0];};intmain(){structdata*d=malloc(sizeof(structdata)+2*sizeof(structstudent));......
  • [LeetCode Hot 100] LeetCode33. 搜索旋转排序数组
    题目描述思路如果nums[left]<=nums[mid],则[left,mid]有序如果nums[left]>nums[mid],则[mid,right]有序方法一:classSolution{publicintsearch(int[]nums,inttarget){if(nums==null||nums.length==0)return-1;intleft=0,ri......
  • P4331 [BalticOI 2004] Sequence 数字序列
    [BalticOI2004]Sequence数字序列LuoguP4331题目描述给定一个整数序列\(a_1,a_2,\cdots,a_n\),求出一个递增序列\(b_1<b_2<···<b_n\),使得序列\(a_i\)和\(b_i\)的各项之差的绝对值之和\(|a_1-b_1|+|a_2-b_2|+\cdots+|a_n-b_n|\)最小。【数......
  • 《初学C语言第32天》
    //////——————————————————10.指针笔试题//////笔试题1//#include<stdio.h>//intmain()//{//  inta[5]={1,2,3,4,5};//  int*ptr=(int*)(&a+1);//  printf("%d,%d",*(a+1),*(ptr-1));//*(a+1):指的是数组a中第二个元素2......
  • DDNS使用公云(3322)的兄弟们注意了
    9月份周六开始就出现陆续解析不了f3322.net的域名,但是新建的xf3322.net的则没问题,到周一官方发布公告才知道被限制了,所以如果华为、华三等设备上面动态公网IP关联了公云(3322)DDNS的朋友,删除之前的域名新注册x3322.net的就可以继续使用了。(按官方的意思目前f3322.net处于整顿状态,多久......
  • AtCoder Beginner Contest 333
    B-Pentagon难度:⭐题目大意给定一个正五边形,其顶点为ABCDE;给定端点a,b,c,d;问a,b之间的距离和c,d之间的距离是否相等;解题思路两个端点之间的距离就看两个端点之间隔了几条边就行;并且因为是五边形,隔x条边和隔5-x条边是等价的;神秘代码#include<bits......
  • C语言实现TCP CS模型代码,客户端服务器
    服务端将接受客户端发送的数据并将其转换成大写形式,然后再发送给客户端,客户端将发送一个字符串给服务器,并显示来自服务器的响应内容。服务器点击查看代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#......
  • CF1733D1 题解
    原题传送门题目大意给定两个长度为\(n\)的二进制字符串\(a\)和\(b\),你可以进行若干次操作,对于每次操作:选两个数\(l\)和\(r\),且\(l<r\),将\(a_l\)和\(a_r\)交换。如果选取的\(l\)和\(r\)相邻,代价为\(x\),否则为\(y\)。保证\(y≤x\),求出最小代价使得\(a=......
  • 【C语言】结束符’\0‘ & gets()字符串输入函数
    ......