如何逐个读取文件中一行中单个单个的数字直到行末,同时一行一行的读取??
比如文件a.txt中:
2 1 3 54 45
45 65 66 32 12 45
可不可以通过cin然后判断是否到行末来读取一行数字???
怎么判断行末????(不用getline读,因数字间可能有几个空格tab,这样取数字比较麻烦)
问题点数:20、回复次数:6Top
1 楼thb28(没有激情的日子)回复于 2004-05-02 19:32:22 得分 5
ifstream iFile;
ofstream oFile;
void getch()
{
if(!iFile.eof())//判断文本是否结束
{
iFile.get(ch);
if(ch=='\n'')
{row++;//判断是否换行
}
}
}
大致思路是这样的
Top
2 楼cngdzhang()回复于 2004-05-02 20:18:34 得分 5
FILE *f;
f=fopen(filename,"r");
int num;
fscanf(f,"%d",&num);//这里能自动转换的
while(!feof(f))
{
//do something
fscanf(f,"%d",&num);
}
Top
3 楼soyer2001(疯人院の炽阳)回复于 2004-05-02 20:32:25 得分 5
thb28(c++学习中) 大大 :
你说得
if(!iFile.eof())//判断文本是否结束
我知道在VB中可以 。
在C里面真的也可以么?
我手头没有C的编译器,能麻烦你把它全部写出来,编译通过了给我看看好么
当然 有空我自己也会去试的!谢谢楼主提这个问题!Top
4 楼qyii(劳心劳力)回复于 2004-05-02 20:40:53 得分 0
markTop
5 楼jiangpeng(Mr. J)回复于 2004-05-02 22:00:00 得分 5
// 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);
}
Top
6 楼dananhai(大男孩)回复于 2004-05-02 22:12:07 得分 0
这是别处我的贴,你看看参考一下
=============================================================
要读的内容:
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);
}
看看是不是这个,是的话给我加分啊!
我没给他写成独立的函数,你自己弄吧意思是这样了。我想一定有好多别的方法,我的可能是最笨的,不过你给的数据到能通过,有毛病请指出。呵呵~~~
Top




