发布网友 发布时间:2022-04-28 13:05
共5个回答
热心网友 时间:2023-10-09 18:40
%*[^\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:至此已读入值的等价字符数
%[]:扫描字符集合
%%:读%符号
热心网友 时间:2023-10-09 18:40
%*[^\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。
参考资料来源:百度百科-通配符
热心网友 时间:2023-10-09 18:41
因为%*[^\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
热心网友 时间:2023-10-09 18:41
%*[^\n]热心网友 时间:2023-10-09 18:42
你写的就是这个意思啊!*是跳过,^\n是“不是换行符”,连起来不就是“跳过不是换行符的所有字符”吗?直到遇到第一个换行符就停下来了!热心网友 时间:2023-10-09 18:40
%*[^\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:至此已读入值的等价字符数
%[]:扫描字符集合
%%:读%符号
热心网友 时间:2023-10-09 18:40
%*[^\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。
参考资料来源:百度百科-通配符
热心网友 时间:2023-10-09 18:41
因为%*[^\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
热心网友 时间:2023-10-09 18:41
%*[^\n]热心网友 时间:2023-10-09 18:42
你写的就是这个意思啊!*是跳过,^\n是“不是换行符”,连起来不就是“跳过不是换行符的所有字符”吗?直到遇到第一个换行符就停下来了!