首页 > 其他分享 >C语言使用%d读入字符会发生什么

C语言使用%d读入字符会发生什么

时间:2023-10-08 23:01:48浏览次数:31  
标签:字符 读取 scanf C语言 数字 函数 读入 赋值

指定了%d来读取一个整数,scanf()函数开始每次读取一个输入字符,它跳过空白字符(包含空格、制表符和换行符)直到遇到一个非空白字符,并期望发现一个数字字符或者一个符号(+或者-)。 如果发现一个数字或符号,那么就保存并读取下一个字符;如果接下来的字符是一个数字,再保存,继续读取。如此持续直到遇到一个非数字字符,此时函数认为:已经读到了整数的末尾。 scanf会将这个非数字字符放回输入缓冲区。这意味着:下一次程序开始读取输入时,仍将从这个非数字字符开始。如果使用多个%d读取整数,但是不小心在中间输入了非数字字符,那么除了非数字字符之前对应的变量外,后面的变量将不会被赋值。 也就是说如果遇到非数字字符,scanf("%d")是会自动忽略的,且认为读入已经结束了,如果是给数组赋值,非数字字符之后的空间其实都没有被成功赋值,如果数组定义在主函数外,那么空间最开始都是为0的,没有被赋值的空间仍然为0,但如果数组定义在主函数内,未被赋值的空间输出来也有值,只不过是一些不知道是什么的数字。

标签:字符,读取,scanf,C语言,数字,函数,读入,赋值
From: https://blog.51cto.com/u_14882565/7763081

相关文章

  • 实验1 C语言输入输出和简单程序编写
    实验任务1(1)1#include<stdio.h>2intmain(){3printf("O\n");4printf("<H>\n");5printf("II\n");6return0;7}结果演示(2)1#include<stdio.h>2intmain(){3printf(&quo......
  • 紫书Unit3.字符数组
    charc语言中字符型关键字用char表示,实际储存的是字符的ascll码。字符串是以‘\0’结尾。同时,字符常量可以用单引号表示,'a',在语法上可以将字符当作int使用,`'a'+1会输出98; scanf输入charscanf("%s",s),遇到空字符会停下来。 //3.5TEX中的引号,将特定符号转化//输入"To......
  • day05-字符串
    我们在上篇day04-数据类型中简单介绍了一下字符串,以及字符串的下标,今天我们来详细认识下字符串。字符串(str)可以使用单引号或双引号来创建字符串,并且字符串是不可变的数据类型,字符串也是Python中最常用的数据类型,所以我们一定学会它,学习字符串一定先熟悉概念,知道是怎么回事,然后......
  • Python入门示例系列10 字符串(初级)
     字符串(string)Python中的字符串用单引号'或双引号"括起来,同时使用反斜杠\转义特殊字符。'ABC' 与"ABC"完全等价。示例:s1="hello"#双引号"括起来s2='hello'#单引号'括起来s3=''#空字符串s4=""#空字符串s5='''......
  • 力扣刷题笔记-08 字符串转整数
    08字符串转整数属于对字符串进行操作的问题百无一用是情深问题字符串里有数字,空格,正负号等,需要先过滤出来在这道题目里,我们通常考虑字符串的组合是“空格+正负号+数字”,一开始我想可能是“正负号+空格+数字”,但是这样的组合根本不可能是数字啊,没什么意义。循环条件for循......
  • 学习C语言心得-do...while循环
    do....while(上来就干!)习题:打印1-10数字#include<stdio.h>//打印1-10intmain(){ inti=1; do { printf("%d",i); i++; } while(i<11); return0;}运行结果:continue中i++放置位置区别:1,i++在continue后方:#include<stdio.h>//打印1-10intmain()......
  • c语言代码练习(与“&”)26
    需求:求一个整数存储在内存中二进制中的1的数量#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){intnum=0;intinput=0;printf("请输入你想要统计的数字:");scanf("%d",&input);inti=0;for(i=0;i<32;i+......
  • Oracle 截取指定字符到目标串的末尾
    Oracle截取指定字符到目标串的末尾substr('目标字符串',开始位置,结束位置)instr('目标字符串','指定字符',出现次数-1表示最后一次)SELECT--目标字符串目标字符串指定符号最后一个......
  • Java中String字符串的用法
    1.类String是java.lang包下的类,所以不需要导包就可以直接使用。String类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。  字符串是常量;它们的值在创建之后不能更改。StringBuffer(字符串缓冲区)支持可变的字符串。因为String对象是不可变的,所......
  • 在Linux中如何查找包含特定文本(字符串)的所有文件?
    内容来自DOChttps://q.houxu6.top/?s=在Linux中如何查找包含特定文本(字符串)的所有文件?如何在文件内容中查找包含特定文本字符串的所有文件?以下方法不起作用,似乎显示了系统中的每个文件。find/-typef-execgrep-H'text-to-find-here'{}\;请执行以下操作:grep-r......