:一个关于VS2012中fscanf-s函数的问题
一个关于VS2012中fscanf_s函数的问题。。。
你写的fscanf_s差一个参数
_Check_return_opt_ CRTIMP int __cdecl fscanf_s(_Inout FILE File, In_z _Scanf_s_format_string const char _Format, ...);
这个是fscanf_s的声明,其中参数表中最后的...不仅仅是赋值指针表,还有每个指针最多读取几位。比如fscanf_s(fp,"%s%s",a,15,b,15);所以你就加个参数,改成fscanf_s(fp,"%s",c,20);就行了
VS2012调试时输出C标准输入输出流
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
标准输入输出:
1. scanf, printf
int scanf(const char *format, arg_list)
scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);
它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount。
scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过语句
if( scanf("%s,%d",str,icount) != 2)
{
...
}
来判断用户输入是否正确.
例子:
#include stdio.h
#include stdlib.h
int main()
{
printf("Input Data:n");
char str[64];
int num;
scanf("%s,%d", str, num);
printf("%s,%d", str, num);
return 0;
}
Input Data:
nihao,1
nihao,1,2009091631
此处将","当做了与前面的nhao以及1一起的字符串。注意scanf时,是以空格,制表符以及回车作为变量之间的分割的。
因此在使用scanf时尽量采用这几个作为分割标记。而不要像scanf("%s,%d", str, num);,它无法正确输入数据。
int printf(const char *format, arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdio.h头文件中定义了标准的输入和输出js判断字符串包含小数点,分别是stdin,stdout。
arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中
格式化输入输出:
1. 格式控制
格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息。
格式说明:由"%"和格式字符组成,如%d,%f,%c,它的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的.
普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如n,t。
n 换行
f 清屏并换页
r 回车
t Tab符
xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数
2. 输出列表
就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开。
一些特殊字符的输出:
单引号,双引号,和反斜杠的输出在前面加转义字符””,如:"’", """, "\"。
% 的输出用两个连在一起的%%,即 printf(“%%”);
常用的格式说明如下:
格式字符
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x 以十六进制形式输出无符号整数(不输出前缀0x)
u 以十进制形式输出无符号整数
f 以小数形式输出单精度实数
lf 以小数形式输出双精度实数
e 以指数形式输出单、双精度实数
g 以%f,%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
特殊:
对64位整数的输入输出,在POJ上的C++环境下(即VC),64位整数是:
__int64 (注意int前面是两个下划线)js判断字符串包含小数点,输入输出格式为”%I64d”.
在G++环境下(即Dev C++) 64位整数是
long long 输入输出格式为”%lld”.
输出宽度
用十进制整数来表示输出的最少位数。注意若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
可以在"%"和字母之间插进数字表示最大宽度。
%9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
MFC中 Format()的一点问题 VS2012中的编译 程序如下 问题出在m_show.Format("%f",m_result);
能把出问题的提示贴出来么? 具体问题具体分析
Format是CString类的一个成员函数,它通过格式操作使任意类型的数据转换成一个字符串。
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
54447454
10月31日
[已回复]
能重复在发一下吗,无法下载了