首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于vs2012下的fscanf_s的一个有关问题

2013-09-05 
关于vs2012下的fscanf_s的一个问题int main(){string i,j,kFILE *KEY_FILEint err fopen_s(&KEY_FILE,

关于vs2012下的fscanf_s的一个问题
int main()
{
string i,j,k;
FILE *KEY_FILE;
int err = fopen_s(&KEY_FILE, "1.txt", "rt");
while ( EOF != fscanf_s(KEY_FILE, "%s %s %s\n",&i,&j,&k))
{
cout << i <<" " << j << " " << k << endl;
}
getch();
return 0;
}
这段代码的时候每次运行都会出现       
 0x0F85DEF9 (msvcr110d.dll) (test.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x00FA0000 时发生访问冲突。
的错误。。但如果把i,j,k改成int型,再调用相同的代码,就成功运行,能读出txt里的数据。 。。但为什么改成string就会出错啊= =这问题困扰好多天了,网上也没类似的问题吧,只能来发帖求助了 fscanf_s
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

i j得换成字符数组才行.

string的话用cin>>i >>j才可以.

cin不是从键盘上输入吗,那从文本中读入呢

#include <ifstream>

ifstream ifs(filename);
while (ifs)//判断文件流状态
ifs>>i>>j;
打错了
是#include <fstream>

热点排行