VS C++编程遇到的一些问题

来源:互联网 发布:商业网络 编辑:程序博客网 时间:2024/05/16 14:08

问题:fatal error LNK1168: 无法打开 xxx.exe 进行写入

只有debug会出现,release则没有,原来是在之前的debug之后,这个进程并没有完全被终止,可以到任务管理器中查找到相应的进程,然后结束所有的这个进程。重新debug就不再会出现这个问题了。

重点,如果结束不了,那就关了程序,重新打开运行,KO!

差分的概念:

设有序列f(k)则称…f(k+2),f(k+1),…f(k-1),f(k-2)…等为f(k)的移位序列。
一阶前向差分定义为
△f(k)=f(k+1)-f(k)

一阶后向差分定义为
▽f(k)=f(k)-f(k-1)

△,▽称为差分算子
前向差分与后向差分的关系为
▽f(k+1)=△f(k)

显示行号:

选择“工具”-“选项”
选择文本编辑器,找到下图中的“行号”并勾选

添加路径到项目属性的附加依赖项
要使用全路径要用双引号把路径框起来~~
“C:/Program Files/vc6/VC98/LIB/d3dx9.lib”
要注意的是两个项目之间是要用空格分开的,注意别打成中文的空格了。
或者在命令行的附加项里面输这个
这里写图片描述

fopen 和 fopen_s,fscanf 和 fscanf_s用法的比较

标签: it 分类: C语言相关
fopen和fopen_s用法的比较

fopen 和 fopen_s

fopen用法: fp = fopen(filename,”w”)。
fopen_s用法:,须定义另外一个变量errno_t err,然后err = fopen_s(&fp,filename,”w”)。
返回值: fopen打开文件成功,返回文件指针(赋值给fp),打开失败则返回NULL值;
fopen_s打开文件成功返回0,失败返回非0。

在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,”w”)。而对于fopen_s来说,还得定义另外一个变量errno_t err,然后err = fopen_s(&fp,filename,”w”)。返回值的话,对于fopen来说,打开文件成功的话返回文件指针(赋值给fp),打开失败则返回NULL值;对于fopen_s来说,打开文件成功返回0,失败返回非0。

在vs编程中,经常会有这样的警告:warning C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use_CRT_SECURE_NO_WARNINGS. See online help for details. 是因为 fopen_s比fopen多了溢出检测,更安全一些。(在以后的文章里还有get与get_s的比较,strcpy strcpy_s的比较,他们的共同点都是用来一些不可预料的行为,以后将进行详尽解释)

#includeFILE *stream, *stream2;int main( void ){   int numclosed;   errno_t err;   // Open for read (will fail if file "crt_fopen_s.c" does not exist)   if( (err  = fopen_s( &stream, "crt_fopen_s.c", "r" )) !=0 )      printf( "The file 'crt_fopen_s.c' was not opened\n" );   else      printf( "The file 'crt_fopen_s.c' was opened\n" );   // Open for write    if( (err = fopen_s( &stream2, "data2", "w+" )) != 0 )      printf( "The file 'data2' was not opened\n" );   else      printf( "The file 'data2' was opened\n" );   // Close stream if it is not NULL    if( stream)   {      if ( fclose( stream ) )      {         printf( "The file 'crt_fopen_s.c' was not closed\n" );      }   }   // All other files are closed:   numclosed = _fcloseall( );   printf( "Number of files closed by _fcloseall: %u\n", numclosed );}

fscanf和fscanf_s用法的比较
fscanf 和 fscanf_s

fscanf用法:fscanf(fp,”%d”,&var)
fscanf_s用法:fscanf(fp,”%d”,&var,sizeof(int))
区别:fscanf_s需要指定长度

fscanf(格式化字符串输入)
相关函数
scanf,sscanf
表头文件
stdio.h
定义函数
int fscanf(FILE * stream ,const char *format,….);
函数说明
fscanf()会自参数stream的文件流中读取字符串,再根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结构存于对应的参数内。
返回值
成功则返回参数数目,失败则返回-1,错误原因存于errno中。
附加说明

范例

#include<stdio.h>main(){int i;unsigned int j;char s[5];fscanf(stdin,”%d %x %5[a-z] %*s %f”,&i,&j,s,s);printf(“%d %d %s \n”,i,j,s);}执行10 0x1b aaaaaaaaa bbbbbbbbbb10 27 aaaaa

fscanf函数:
fscanf(fp,”%s”,temp_str);和fscanf(fp,”%lf”,&min_snr);
fscanf就是从文件中读取数据,保存到第三个参数开始的变量里,fp是一个FILE类型的指针。fscanf(fp,”%s”,temp_str); // 就是从文件指针fp里面读取一个字符串,保存到temp_str里面,跟scanf差不多,只是scanf是从键盘输入,fscanf是从文件里读取fscanf(fp,”%lf”,&min_snr);

原创粉丝点击