%[^\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个,就结束读取
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)