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

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

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

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

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

如:

#include <stdioh>

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:至此已读入值的等价字符数  

%[]:扫描字符集合  

%%:读%符号

从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。

fscanf(FILEstream,constcharformat,[argument]),根据 format参数来控制读取什么类型的数值。“%s”则是读取字符串,遇空格换行结束,"%c"则是读取单个字符。

fprintf函数:

头文件:#include <stdioh>

定义函数:int fprintf(FILE stream, const char format, );

函数说明:fprintf()会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。

返回值:关于参数format 字符串的格式请参考printf() 成功则返回实际输出的字符数, 失败则返回-1, 错误原因存于errno 中

范例

#include <stdioh>

main()

{

    int i = 150;

    int j = -100;

    double k = 314159;

    fprintf(stdout, "%d %f %x \n", j, k, i);

    fprintf(stdout, "%2d %d\n", i, 2, i);

}

执行:

-100 3141590 96

150 150

fscanf函数:

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。

用 法:int fscanf(FILE stream, char format,[argument]);

int fscanf(文件指针,格式字符串,输入列表);

  for example:

  FILEfp;

  chara[10];

  intb;

  doublec;

  fscanf(fp,"%s%d%lf",a,&b,&c)

  返回值:整型,数值等于[argument]的个数

其中的format就是相当于正则表达式中的格式,即用什么样的格式来分隔文件中的信息。

if(fscanf(fp1,"%s : %s equal: %lf",person[index]num,person[index]first, &person[index]equal)==EOF)

{

printf("END FILE");

exit(0);

}

}

for(i=0;i<1;i++)

{

//person[i]first[0]=toupper(person[i]first[0]);

//person[i]last[0]=toupper(person[i]last[0]);

printf("The num and name:\n%s:%s equal:%lf\n",person[i]num,person[i]first, person[i]equal);

datatxt里的数据我是这样的。

414314 : FanXiang equal:20

问你个问题"datatxt" 这个文件的路径是在哪

用fgets就可以了  原型是char fgets(char s, int n, FILE stream); 从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL char t[100];fp=fopen("file","r");fgets(t,81,fp); //从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12184721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存