这是什么情况?请大侠帮帮忙!

若有所思2016 2011-01-07 04:27:49

#include<iostream>
using namespace std;

void main()
{
FILE *inf=fopen("a.txt","r"); //为读页打开文件
while (!feof(inf))//不到文件尾就循环
{
//因为我们知道文件的结构,所以用以下方式读取
int k,kk;
fscanf(inf,"(%d,%d)",&k,&kk); // 从文件里面读取
cout<<k<<","<<kk<<endl;
}
system("pause");

}

不知为啥,老是无限输出第一组数据!无语。。。
...全文
84 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaylong35 2011-01-07
  • 打赏
  • 举报
回复
你把文件里面两组数据中的空格去掉就可以了
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
感谢大家,分数不多,就分一分吧!
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
哦,谢了,看来自己学得还不是很好啊!多谢lucifer了!以后要更加努力了,呵呵!
luciferisnotsatan 2011-01-07
  • 打赏
  • 举报
回复
实际上除了第一次,之后的scanf都没成功读到值。
第二次起,fscanf返回值为 0

Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf and fwscanf.

luciferisnotsatan 2011-01-07
  • 打赏
  • 举报
回复
因为你的数据之间有空格
(33,65)空格(23,89)空格(23,12)
所以格式化字符串也要加上个空格
"(%d,%d)空格"
也就是

fscanf(inf,"(%d,%d) ",&k,&kk);

有 空格,回车,tab。格式化字符串加一个空格就行了
suhuaiqiang_janlay 2011-01-07
  • 打赏
  • 举报
回复
你打开txt应该用“rt”不应该用“r”吧?
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
以前用FILE没有遇到过这种情况!不知这次那里出了问题!急。。。
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
好像还是不行!
pengzhixi 2011-01-07
  • 打赏
  • 举报
回复
while (1)
{
if(eof(inf))
break;//因为我们知道文件的结构,所以用以下方式读取
int k,kk;
fscanf(inf,"(%d,%d)",&k,&kk); // 从文件里面读取
cout<<k<<","<<kk<<endl;
}
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
大侠啊,再给提示啊!
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
k和kk没改变!
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
我在a.txt文件里只写了三组数
(33,65) (23,89) (23,12)
去掉括号后,显示无限数,不过不是第一组数!
好像k和kk改变!
bdmh 2011-01-07
  • 打赏
  • 举报
回复
去掉括号
fscanf(inf,"%d,%d",&k,&kk); 
若有所思2016 2011-01-07
  • 打赏
  • 举报
回复
大侠们啊!给点提示啊!

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧