如何逐个读取文件中一行中单个单个的数字直到行末,同时一行一行的读取??

tbwisess 2004-05-02 07:26:18
比如文件a.txt中:
2 1 3 54 45
45 65 66 32 12 45
可不可以通过cin然后判断是否到行末来读取一行数字???
怎么判断行末????(不用getline读,因数字间可能有几个空格tab,这样取数字比较麻烦)
...全文
228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dananhai 2004-05-02
  • 打赏
  • 举报
回复
这是别处我的贴,你看看参考一下
=============================================================
要读的内容:
CALLING_NBR CALLED_NBR START_TIME DURATION

8655148 03592296879 2004/02/03 0:01:03 34

8689052 03592868899 2004/02/03 0:02:05 12

8878085 03597529283 2004/02/03 0:03:23 1

8661641 03594033744 2004/02/03 0:01:53 91
==========================================================================
#include <stdio.h>
main(void)
{
int i=0;
char ch;
char linebuffer[81];
FILE *fp;
if((fp=fopen("d:\\t1.txt","rb"))==NULL)
{printf("fill not open !");
exit(0);
}
ch=fgetc(fp);
while(!feof(fp)){
if(ch!='\n'){
linebuffer[i++]=ch;
if(i>100)
{printf("error occur!");
exit(0);
}
}
else{
linebuffer[i]='\0';
puts(linebuffer);
i=0;
}
ch=fgetc(fp);
}
fclose(fp);
}
看看是不是这个,是的话给我加分啊!
我没给他写成独立的函数,你自己弄吧意思是这样了。我想一定有好多别的方法,我的可能是最笨的,不过你给的数据到能通过,有毛病请指出。呵呵~~~
jp311 2004-05-02
  • 打赏
  • 举报
回复
// c++
#include <fstream>

using namespace std;

int main(int argc, char* argv[])
{
if (argc != 2) return -1;
ifstream f(argv[1]);
while (!f.eof()) {
int num;
f >> num;
cout << num << '\n';
}
f.close();
}

// c
#include <stdio.h>

int main(int argc, char *argv[])
{
FILE *f;
if (argc != 2) return -1;
f = fopen(argv[1], "r");
while (!feof(f)) {
int num;
fscanf(f, "%d", &num);
printf("%d\n", num);
}
fclose(f);
}
qyii 2004-05-02
  • 打赏
  • 举报
回复
mark
soyer2001 2004-05-02
  • 打赏
  • 举报
回复
thb28(c++学习中) 大大 :
你说得
if(!iFile.eof())//判断文本是否结束

我知道在VB中可以 。
在C里面真的也可以么?
我手头没有C的编译器,能麻烦你把它全部写出来,编译通过了给我看看好么

当然 有空我自己也会去试的!谢谢楼主提这个问题!
cngdzhang 2004-05-02
  • 打赏
  • 举报
回复
FILE *f;

f=fopen(filename,"r");

int num;

fscanf(f,"%d",&num);//这里能自动转换的
while(!feof(f))
{
//do something
fscanf(f,"%d",&num);
}
thb28 2004-05-02
  • 打赏
  • 举报
回复
ifstream iFile;
ofstream oFile;

void getch()
{
if(!iFile.eof())//判断文本是否结束
{
iFile.get(ch);
if(ch=='\n'')
{row++;//判断是否换行
}
}
}
大致思路是这样的

64,666

社区成员

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

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