首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么sscanf只读取两行指针指向指针的行?

sscanf函数是C语言中的一个字符串处理函数,用于从一个字符串中按照指定的格式读取数据。它的原型为:

代码语言:txt
复制
int sscanf(const char *str, const char *format, ...);

其中,str是要读取的字符串,format是格式控制字符串,后面的参数是要读取的数据的地址。

对于为什么sscanf只读取两行指针指向指针的行,我们需要先了解sscanf函数的工作原理。sscanf函数会根据格式控制字符串format的内容,从字符串str中按照指定的格式读取数据,并将读取到的数据存储到后面参数中指定的地址中。

在格式控制字符串format中,可以使用百分号(%)开头的转换说明符来指定要读取的数据的类型。例如,%d表示读取一个整数,%f表示读取一个浮点数,%s表示读取一个字符串等。

根据题目中的描述,sscanf只读取两行指针指向指针的行。这里的两行指针指向指针是指格式控制字符串中使用了两个连续的%s,表示跳过两个字符串。%s是sscanf中的一种特殊的转换说明符,它表示读取一个字符串但不存储。

因此,当格式控制字符串中出现两个连续的%*s时,sscanf函数会跳过两个字符串,不进行存储操作。这就是为什么sscanf只读取两行指针指向指针的行。

需要注意的是,sscanf函数的返回值是成功匹配并读取的参数个数,如果返回值小于参数个数,说明读取失败。所以在使用sscanf函数时,需要根据返回值来判断读取是否成功。

关于sscanf函数的更多详细信息,您可以参考腾讯云的C语言开发文档中的相关内容:sscanf函数

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么无返回值的链表的插入操作头结点一定要用指向指针的指针

前言: 为什么链表的插入操作头结点一定要用指向指针的指针?之前自己对这个问题总是一知半解,今天终于花了点时间彻底搞懂了。 总的来说这样做的目的是为了应对“空链表”的情况。...为了防止往一个空链表中插入一个结点时,新插入的结点那就是链表的头指针,这时如果链表的结点是一级指针的话,那么出了链表插入函数的作用域后,头结点又回到了原来的空值。...比如下面的一段程序 1 // 链表的头指针为什么是指向指针的指针.cpp : 定义控制台应用程序的入口点。...这就是因为第20行直接将新节点的值赋值给Phead,导致出了insert函数后,Phead又变成了NULL结点,而没有达到想要的指向新结点的效果。...如果对上面红字还是不理解可以看下面程序 1 // 为什么链表的插入操作头结点一定要用指向指针的指针_延续.cpp : 定义控制台应用程序的入口点。

1.3K70

fscanf读取一行字符串-【C语言】15.文件操作

文件指针   缓冲文件系统中,关键的概念是“文件类型指针”fscanf读取一行字符串,简称“文件指针”。   ...  出错   “w”(只写)   为了输出数据,打开一个文本文件   建立一个新的文件   “a”(追加)   向文本文件尾添加数据   出错   “rb”(只读)   为了输入数据fscanf读取一行字符串...【返回值】成功返回读取到的字符,读到文件结尾时返回EOF。 说明:fget() 返回的字符实际上是文件流( FILE 结构体)中位置指针所指向的字符。...- fgets函数    fgets函数从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。...stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。

2.2K30
  • 【C进阶】—— 一篇文章带你学会C语言的文件操作

    比如: FILE* pf;——文件指针变量 这里定义的pf就是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。...编写程序时,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。...当然我们也可以把两行内容全部读取并打印出来看看: char arr[] = "#########"; fgets(arr, 10, pf); printf("%s", arr); fgets(arr...用sscanf 5.2 sscanf 我们可以再来对比一下sscanf和fscanf: 它们还是第一个参数不同: fscanf是从流中读取格式化数据,参数是文件指针。...而sscanf是从字符串中读取格式化数据,所以参数还是字符指针。 好,那我们接着刚才上面写的代码,把写入字符串的数据再还原到一个结构体变量中。

    25510

    C语言----文件操作

    打开流,读\写,关闭流 标准流 那为什么我们从键盘输⼊数据,向屏幕上输出数据,并没有打开流呢?...⼀般都是通过⼀个FILE的指针来维护这个FILE结构的变量,这样使⽤起来更加⽅便 我们通过FILE*的指针来找到文件信息区 FILE* pf;//⽂件指针变量 定义pf是⼀个指向FILE类型数据的指针变量...在编写程序的时候,在打开⽂件的同时,都会返回⼀个FILE*的指针变量指向该⽂件,也相当于建⽴了指针和⽂件的关系。...顺序读写介绍 除了最后两行的,其他的都是读和写文本信息 第一组:fputc 和fgetc //fputc--写字符 int main() { FILE* pf = fopen("test.txt...,函数会返回EOF fgets: charfgets(char str,int nmu,FILE*stream) 第一个参数就是一个指针,指向复制到读取字符串的字符数组的指针 第二个参数num 是这个字符串能拷贝多少个字符

    7910

    (CC++)文件

    为什么整形的存储要用补码,cpu只有加法器,负数存的是补码,补码的最大意义就是用加法就可以算减法 1....下面我们可以创建一个FILE*的指针变量: FILE* pf;//文件指针变量 定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。...在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。 ANSIC规定使用fopen函数来打开文件,fclose来关闭文件。...) 是一行一行的写入文件(不换行就相当于顺序的字符串写入)(换行也能写入) fgets fgets - C++ Reference (cplusplus.com) 一次读取一行,如果没读取完继续顺序读取...fread - C++ Reference (cplusplus.com) 已知文件里的内容就是fwrite后的文件 读取的方式是rb 返回值 sprintf和sscanf sprintf - C++

    9410

    【C】语言文件操作(一)

    本章重点 : 为什么使用文件 什么是文件 文件的打开和关闭 文件的顺序读写 文件的随机读写 文本文件和二进制文件 文件读取结束的判定 文件缓冲区 因内容比较多,为方便大家吸收,这一篇只介绍1,2,3,4...我们可以创建一个FILE*的指针变量: FILE* pf;//文件指针变量 定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变 量)。...的指针变量指向该文件,也相当于建立了指 针和文件的关系。...对象的指针 打开方式如下: “r”(只读) 为了输入数据, 打开一个已经存在的文本文件出错 “w”(只写) 为了输出数据,会覆盖原数据 打开一个文本文件建立一个新的文件 “a”(追加) 向文本文件尾添加数据...* stream ); 示例: //按照顺序读取文本行 // fgets //读到的内容将被放到指针str指向的字符数组中 //num要复制到str 的最大字符数(包括终止空字符),真正读到的字符是num

    24720

    初识C语言·文件操作

    在读取文件的时候,字符函数都是一个字符一个字符的读取或者写入的,当读取完一个字符后,光标往后移动,指向下一个字符,所以如果不用for循环的话,想要打印就需要重复写这两行代码: int ch = fgetc...都可以做,可以理解为fscanf fprintf包含了scanf printf,前面介绍了这两组函数,这里就不介绍了 sscanf sprintf: sprintf的作用是将格式化的数据放到指针指向的空间里面...,sscanf的作用是从指针指向的空间种读取格式化的数据(代码如下): int main() { struct XY { char name[10]; int age; float score...26个,使用fgetc函数一个一个读取,最后的打印结果应该是a b c d e,运行到d的时候文件指针,也就是光标,指向的是e,那么如果我们想要让文件指针回到最开始的位置,使得最后的打印结果还是a,就可以用到...这里用到的函数就是fseek函数,随机读取函数,可以 使文件指针指向最开始到结尾的任意位置: 它有3个参数,第一个参数是文件指针,第二个是偏移量,第三个是计算偏移量的起始位置,偏移量很好理解,光标指向第一个字符的时候偏移量就是

    7310

    C语言从入门到实战——文件操作

    在读取和写入文件时要确保文件指针指向正确的位置,可以使用 fseek() 函数来调整文件指针的位置。 每次读取或写入文件后,都要检查函数的返回值,以确保文件操作成功。....); 其中,stream 是指向要读取的文件的指针,format 是要读取的数据的格式字符串,... 表示可以接收任意数量和类型的参数,用来接收读取的数据。...size 是每个数据项的大小(以字节为单位),count 是要读取的数据项的数量, stream 是一个指向要读取的文件的指针。...fgets 在C语言中,fgets函数用于从文件中读取一行文本。...读取的每一行被存储在名为buffer的字符数组中,并随后被打印到控制台上。最后,关闭文件以释放系统资源。

    43210

    C语言文件操作

    目录 1.为什么使用文件 2.什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3.文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 4.文件的顺序读写 4.1 对比的顺序读写...为什么使用文件?...这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE. 创建一个文件指针变量:FILE* pf; 定义pf是一个指向FILE类型数据的指针变量。...可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到在磁盘中的与它关联的文件。...sscanf :从一个字符串中转化成一个格式化的数据   sprintf 是把一个格式化的数据转化成字符串 5.

    4K20

    CC++文件操作IO流

    FILE* f;//文件指针变量 定义f是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。...通过该文件信息区中的信息就能够访问该文件,即通过文件指针变量能够找到与它关联的文件,就如上图一样,f指向了文件信息区。...fscanf是针对所有输入流的格式化输入语句 fprintf是针对所有输出流的格式化输出语句 而对于sscanf和sprintf sscanf是从字符串中读取格式化数据  sprintf是将格式化数据写入字符串...如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 文件读取结束的判断 feof函数 feof函数用来判断文件读取结束的原因是什么?...二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。

    78730

    熬夜整理的万字CC++总结(二),值得收藏

    0.为什么使用指针 假如我们定义了 char a=’A’ ,当需要使用 ‘A’ 时,除了直接调用变量 a ,还可以定义 char *p=&a ,调用 a 的地址,即指向 a 的指针 p ,变量 a(...char 类型)只占了一个字节,指针本身的大小由可寻址的字长来决定,指针 p 占用 4 个字节。...行不可以执行,void*指针只可以储存变量地址,不可以直接操作它指向的对象 由于void是空类型,只保存了指针的值,而丢失了类型信息,我们不知道他指向的数据是什么类型的,只指定这个数据在内存中的起始地址...#include int sscanf(const char *str, const char *format, ...); 功能:从str指定的字符串读取数据,并根据参数format...读取指定宽度数据 void test02(){ char buf[1024] = { 0 }; //跳过前面的数字 sscanf("123456aaaa", "%7s", buf); printf

    1.3K20

    【C语言】与文件有关的操作

    一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。 FILE* pf; 定义pf是一指向FILE类型数据的指针变量。...可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够间接找到与它关联的文件。...在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。 ANSIC 规定使用 fopen 函数来打开文件, fclose 来关闭文件。...", arr); fgets(arr, 20, pf); printf("%s", arr); fclose(pf); pf = NULL; return 0; } 在监视窗口中调试看看为什么读取的会少读一次...fputs:一次写一行字符 举个例子:写两行字符到data中 int main() { FILE* pf = fopen("data.txt", "w"); if (pf == NULL) {

    18010

    手把手教你深入理解cc++中的指针

    例如: int a = 10; int* p = &a; //定义指针变量 p *p = 20; //将指针p指向的值修改为 20 上面两行代码中,我们首先定义了一个整型变量 a ,然后又定义了一个指针变量...p 指向 a .第二行代码中,符号&代表取地址,相当于把变量a的地址赋值给了指针变量p(p指向a),*加在指针变量前面代表解引用,意思找到指针p指向的值,因此,第三行代码的意思就是讲p指向的值也就是a...三,常量指针与指针常量 请看下面两行代码: int a = 10; const int * p1 = &a; //常量指针 int * const p2 = &a; //指针常量 上面第二行代码中的...但是要注意,当用sizeof操作符操作arr的时候,这个时候不能把arr当做一个指针来对待,因为sizeof操作数组的时候它返回的是数组的字节长度,而单个指针变量只占用四个字节。...请看下面两行代码: int *p1[10]; //指针数组 int (*p2)[10]; //数组指针 上面两行代码,p1是一个数组,而p2却是一个指针,它指向一个匿名数组。为什么是这样呢?

    52331

    C语言文件操作

    1.为什么使用文件 文件是放在硬盘当中,使用文件可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。 不像数据在缓存中,当我们退出程序,数据就丢失。 2.什么是文件 磁盘上的文件就是文件。...从文件中读取字符: 注意当我们需要r读取文件时,需要将文件的打开方式变为“”,如果还是“w”是只写,不能读取文件的 文件中读取是从第一个开始读,然后第二个、第三个……这也是文件指针的应用。...sprintf / sscanf的应用 、 前面都是将文本数据作为操作对象,现在我们用二进制作为操作对象 应用到fread和fwrite函数 fwrite的第一个参数是ptr指向的数据要被写入文件,接着我们要写...下图是origin表示的位置 偏移量为正时,表示向右偏移; 偏移量为负时,表示向左偏移。 当origin指向的是末尾指针,那么指向的就是最后一个字符的后面一个,当偏移量为-1时才是最后一个字符。...5.2 ftell 返回文件指针相对于起始位置的偏移量。 当文件指针指向的是起始位置,返回的偏移量就是0,当读取一个字符后,返回的偏移量就是1 5.3 rewind 将文件指针重置到起始位置。

    6710

    文件操作学不懂,小代老师带你深入理解文件操作(中卷)

    C程序针对⽂件、画⾯、键盘等的数据输⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流中读取数据,都是要打开流,然后操作。...4.1.2 标准流 那为什么我们从键盘输⼊数据,向屏幕上输出数据,并没有打开流呢?...C语⾔中,就是通过 FILE* 的⽂件指针来维护流的各种操作的。 4.2 ⽂件指针 缓冲⽂件系统中,关键的概念是“⽂件类型指针”,简称“⽂件指针”。...下⾯我们可以创建⼀个FILE*的指针变量: FILE* pf;//⽂件指针变量 定义pf是⼀个指向FILE类型数据的指针变量。可以使pf指向某个⽂件的⽂件信息区(是⼀个结构体变量)。...在编写程序的时候,在打开⽂件的同时,都会返回⼀个FILE*的指针变量指向该⽂件,也相当于建⽴了指针和⽂件的关系。ANSI C 规定使⽤ fopen 函数来打开⽂件, fclose 来关闭⽂件。

    10110

    C语言进阶-文件操作超详解

    目录 为什么使用文件 什么是文件 分类(从文件功能的角度) 文件名 文件的打开和关闭 文件指针 fopen和fclose函数 打开方式表 文件的顺序读写 顺序读写函数表 什么是输入输出流 fgetc/fgetc...文件读取结束的判断 feof函数 ferror函数 读取结束判断方向  文件缓冲区 ---- 前言 ----  本章主要讲解: 掌握C语言的文件操作和使用 文件操作各种函数的基本使用 为什么使用文件...文件在读写之前应该先 打开文件(使用fopen函数) ,在使用结束之后应该 关闭文件(使用fclose函数) 注:在打开文件的同时,都会返回一个 FILE* 的指针变量指向该文件,相当于建立了指针和文件的关系...注:每当函数运行一次后,流(标准输入流或者文件流)的指针就会指向读取内容后一个空间的首地址 示例: //创建并打开文件 FILE* pf = fopen("test.txt", "w");/...---- fseek函数 作用: 根据文件指针的位置和偏移量来定位文件指针 注:每当读取文件的数据时,文件指针会指向下一个空间地址 定义: int fseek ( FILE * stream

    1K20

    文件操作——C语言

    标准流: 我们知道了流的存在,那在我们写代码从键盘上输入数据,向屏幕上输出数据,为什么没有打开流呢?...我们创建一个FILE* 的指针变量 FILE* pf; //文件指针变量 定义pf是一个指向FILE* 类型数据的指针变量。可以让pf指向某一个文件的文件信息区。...在编写程序的过程中,在打开文件的同时,都会返回一个FILE* 的指针变量指向该文件,这也相当于建立了指针和文件之间的关系。..."w"(只写): 我们再以只写的方式打开一个文件,首先,现在 在这个路径下,是存在test.txt 这个文件的,我们先把它删除在以"w"的方式打开: int main()...,具体输入内容); sscanf:从字符串中读取数据,可以理解为 sscanf(字符型数组首地址,输入格式,具体输入内容); 接下来写代码来看一下sscanf: int main

    10710

    【c语言】巨巨巨详细!—— 文件操作(笔记整理)

    在我的个人理解里,他像一个编辑定位的鼠标光标,它可以指向某个文件的文件信息区,通过其即可访问到该文件。...原文件内容: 使用fputs后的文件内容 4.fgets——读取指定长度的一行字符串数据(两种使用) 原文件内容 我们需要创建一个数组来存放一定长度的数据, 然后将所读取的数据放入...第二段代码中,通过while循环将读取到“鼠标光标”指向数据末尾,也就是读完了。...输出的”笔“是stdout,而输入的”笔“则是stdin 7.sprintf函数和sscanf函数 因为提到了fprintf和fscanf,干脆也去学了sprintf和sscanf。...我的疑惑:为什么读写文件还有二进制的形式?这个用二进制形式的函数都有什么作用呢?  二进制文件存储相比于文本文件存储而言,有什么更好的地方吗?

    16510
    领券