c语言:fscanf(fp,"%*[^\n]")为啥可以跳过全部字符直到下一个换行符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言:fscanf(fp,"%*[^\n]")为啥可以跳过全部字符直到下一个换行符相关的知识,希望对你有一定的参考价值。

%*[^\\n]这个通配符的意思,就是跳过所有字符,直到换行符为止。

scanf是格式输入函数,功能是在屏幕上输入指定的信息。简单的来说和printf相似却不相同。

scanf调用格式: scanf("<格式化字符串>",<地址表>);

如:

#include <stdio.h>

int main()

int a,b,c;

printf(“input three data:\\n”);//使用 scanf 之前先用 printf 提示输入。

scanf("%d%d%d",&a,&b,&c); // scanf 的“输入参数”中,前面的取地址符&记住

printf("%d,%d,%d/n",a,b,c);

return 0;

扩展资料:

C语言通配符:

%a,%A:读入一个浮点值(仅C99有效)    

%c:读入一个字符    

%d:读入十进制整数    

%i:读入十进制,八进制,十六进制整数    

%o:读入八进制整数    

%x,%X:读入十六进制整数    

%s:读入一个字符串,遇空格、制表符或换行符结束。    

%f,%F,%e,%E,%g,%G:用来输入实数,可以用小数形式或指数形式输入。    

%p:读入一个指针    

%u:读入一个无符号十进制整数    

%n:至此已读入值的等价字符数    

%[]:扫描字符集合    

%%:读%符号

参考技术A

%*[^\\n]这个通配符的意思就是跳过所有字符 直到换行符为止。

^for (i=0;i<2;i++) fscanf(fin,"%*[^\\n]%*c"); 跳过2行。

%* 是“跳过”

[^\\n] 字符串的分隔符是"\\n", 中括号里可以写 分隔符 表

%*[^\\n] 跳过 \\n 前的所有字符串。

%*c 是“跳过”行尾 的 换行符。

#include <stdio.h>

#include <stdlib.h>

main()

FILE *fin;

int x,y;

int i;

fin=fopen("a.txt","r");

for (i=0;i<2;i++) fscanf(fin,"%*[^\\n]%*c"); // 跳2 行

fscanf(fin,"%d %d",&x,&y); // 读 2 个 int

printf("%d %d\\n",x,y); // 打出 3 33

fclose(fin);

扩展资料:

可以使用星号代替零个、单个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。

可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。

参考资料来源:百度百科-通配符

参考技术B

因为%*[^\\n]这个通配符的意思就是跳过所有字符 直到换行符为止。

*是跳过,^\\n是“换行符”,连起来就是“跳过不是换行符的所有字符”,直到遇到第一个换行符就停下了。

fscanf是不定参数的。前者从fp中读取一个v,后者从fp中读取若干个空白字符,包括' ','\\n','\\t'等。

扩展资料:

fscanf 函数原型为 int fscanf(FILE * stream, const char * format, [argument...]);。format 说明符形式为[=%[*][width][modifiers]type=]

其功能为根据数据格式(format),从输入流(stream)中读入数据,存储到argument中,遇到空格和换行时结束。fscanf位于C标准库头文件<stdio.h>中。

参考资料来源:百度百科—fscanf

参考技术C %*[^\n]
这个通配符的意思就是
跳过所有字符 直到换行符为止。

更具体的 你可以百度
C语言scanf中正则的使用
有很多说明的文章的。
参考技术D 你写的就是这个意思啊!*是跳过,^\n是“不是换行符”,连起来不就是“跳过不是换行符的所有字符”吗?直到遇到第一个换行符就停下来了!

c语言中的一个语句fscanf(fp,"%d,",&xx[i]);是啥意思

参考技术A fp是指向某个文件的指针,在前面应该已经定义了,这句的作用就是从那个指定的文件中读取一个整型数据和一个逗号存在数组里面。

以上是关于c语言:fscanf(fp,"%*[^\n]")为啥可以跳过全部字符直到下一个换行符的主要内容,如果未能解决你的问题,请参考以下文章

关于C语言中fscanf()函数如何读入文件中下一行的数据!!

C语言程序中有一条语句:fscanf(fp, "%*s %*s%*s");这里面的%*s表示啥?

C语言中fscanf()按一定的格式读取文本文件!

请问C语言对文件的读取都有哪些函数,都有啥功能?像fseek();fscanf();fread......啥的

在C/C++中,fscanf(fp,"%s",temp_str);和fscanf(fp,"%lf",&min_snr);的意思分别是啥?

在C/C++中,fscanf(fp,"%s",temp_str);和fscanf(fp,"%lf",&min_snr);的意思分别是啥?