C/C++读取txt

1.读取txt的方式:
TXT中存了一列的数字,如:

100
99
98
...
3
2
1

读取时选用fscanf()函数,在ys2015中采用fscanf_s()函数。
格式为:

fscanf(文件指针,读取格式,存储数据的变量引用);

fscanf(FILE *fp,"%d,",&x);

举例:

FILE *fid;
int number;
fopen_s(&fid,filename,"r");
for(int i = 0;i<10;i++){
    
    
	fscanf_s(fid,"%d",&number);
	if (feof(fid))break;
}
fclose(fid);

2.fread与fscanf的区别:
fread函数只用于读二进制文件,而fscanf可以读文本也可以读二进制。
参考:了解fscanf,fread的用法和区别

3.另,曾遇到的问题
由于使用的是vs2015,因此fopen、fscan都不能用,替换为fopen_s、fscan_s,但是在读取模式下打开文本失败,可是文件一直都存在。

FILE * fp;
errno_t err;
if(err=fopen_s(&fid,"a.txt","r"))
{
    
    
cout<<"failed to open file.\n"<<endl;
return -1;
}

最后先通过写入模式,打开成功,然后再切换到读取模式,就好了。

FILE * fp;
errno_t err;
if(err=fopen_s(&fid,"a.txt","w"))
{
    
    
cout<<"failed to open file.\n"<<endl;
return -1;
}
else
{
    
    
cout<<"succed in opening file.\n"<<endl;
}

也不知道问题在哪里。

猜你喜欢

转载自blog.csdn.net/alansss/article/details/119427837