如何在C++文件操作是判断是否到了每一行的结尾?

我想从TXT中读取数据,但是数据长短个数不一样,我要确定每一行为一组数据。所以想判断是否到了每一行的结尾。

\n 判断行数是不准确的。
ifstream infile("a.txt",ios::in);
if(! infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
while(!infile.eof())
{
char *buf =new char[1024];
infile.getline(buf,'\r\n');
count++;
}
这是我最近写的一个获取行数的代码。count为最後获取的行数。你看看有没有参考价值吧。
不过我说一下,判断行的结束,我试过\n是不行的,不准确。具体原因我也没搞懂。後来我用\r\n作为判断条件就正确了。
我是读取一个5000多行的txt文件,最後count出来的行数跟我用ultraedit所看到的行数是相匹配的。
本程序代码可能效率不高,但是亲测判断条件是可行的。谢谢!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-20
你以字符串读入不就可以了,不用判断是否到行结尾
一般用这个语句
while(fscanf(fp1,"%s",a)!=EOF)
这样就按行读入数据直到文件结束
该怎么处理,在这个while循环中做即可本回答被提问者和网友采纳
第2个回答  2013-08-16
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
fstream infile;
infile.open("infile.txt",ios::in);
if(!infile)
{
cout<<"infile.txt can't open."<<endl;
abort();
}
char ch;
while(!infile.eof())
{
if(infile.get(ch)=='\n')
{
//输入你要执行的内容
}
cout <<ch<<" ";
};
cout<<endl;
infile.close();
return 0;
}
第3个回答  2013-08-16
char ch;
fgetc(fp)读一个字 if((ch=fgetc(fp))=='\n')判断是否是一行结束

char buf[1024];
fgets(buf,1024,fp);这个是一行一行的读
char name[1024],number[1024],department[1024];
按空格格式放入数组
sscanf(buf,"%s %s %s",name,number,department);
zhangsan two eng
按逗号放入数组
sscanf(buf,"%s,%s,%s",name,number,department);
zhangsan,two,eng

望采纳,还有不懂可以问我追问

- - 我用的是fstream,之前那个我也知道。但是这个不会弄啊

第4个回答  2013-08-16
你可以直接用取一行的函数不就行了,getline函数追问

比如姓名, 性别,年龄,学生号,这都是分开的数据啊 用getline是读到一个字符串里面。不好区分啊

追答

中间没有间隔么,判断下就好了

如何在C++文件操作是判断是否到了每一行的结尾?
不过我说一下,判断行的结束,我试过\\n是不行的,不准确。具体原因我也没搞懂。後来我用\\r\\n作为判断条件就正确了。我是读取一个5000多行的txt文件,最後count出来的行数跟我用ultraedit所看到的行数是相匹配的。本程序代码可能效率不高,但是亲测判断条件是可行的。谢谢!

c++如何判断文件末尾
使用标准库函数feof()可判断是否到达文件结尾。用法:include <stdio.h> int feof(FILE *stream);参数流 :FILE结构的指针。功能:feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值...

C++操作文件流的时候,seekg的时候怎么看是不是超过文件末尾了
1 ifstream 有个函数叫eofbit 你试试 我记得有。这个事判断文件到达结尾的函数。2 可以先获得文件大小,seekg前先判断跳的位置是否超出的文件的大小。

C++怎么用eof判断txt文件到文件结尾了没
在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。

怎么判断文件每行的终止符和末尾终止符
0x0a,即回车符和换行符。如果是,则这个文件用记事本打开能正确显示。C++编程用fgets函数一次可读取一行数据;如果feof(fp)返回真值则文件结束,或者用fgets函数返回值来判断,比如fgets返回值是EOF或-1,0则表示读取失败,或到了文件结尾。(fgets返回值应当是本次读到的字符数。)

C++中,eof怎样用的,我是用它来判断输入是否结束了!!
1、首先,在C语言编程软件中,定义一个布尔型变量,保存判断的结果。2、接着,定义一个字符型变量,保存输入的标识符。输入一个标识符,保存在变量id中。3、判断标识符的首字母,看它是否符合标识符要求。4、用for循环判断标识符的每个字符,看它是否符合标识符的要求。5、最后,如果判断结果为true,...

c++eof()函数对文件及字符串的处理解析
在C\/C++编程中处理文件时,`eof()`函数的使用对于判断文件是否为空或是否到达文件结尾至关重要。然而,操作过程中可能会遇到问题,如无法准确判断文件状态,这可能导致程序运行结果不稳定。例如,多输出一个字符或陷入死循环。输出结果分析显示,`eof()`函数的返回值可能会误导程序员。该函数返回true时,...

cin判断读取结束 C语言
cin是C++的输入流,可以通过>>进行读龋 判断读取结束,一般有两种方法,具体取决于与输入的约定。1 以特殊值结尾。如输入整数,以-1结束,那么当读到-1的时候,就确定读取结束了。代码:int n;while(1){ cin>>n; if(n == -1)break; \/\/处理输入的合法值。} 2 以EOF结尾,即文件...

在C++中文件函数eof的作用是什么,以及用法
C++ eof()函数可以帮助我们用来判断文件是否为空,抑或是判断其是否读到文件结尾。在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放...

关于C++的文件结束符的困惑
上面都是学c的吧 呵呵 还是我来说这个c++问题吧 ctrl+z是结束符 文件结束符 并不是让cin结束 如果你理解的深点的时候你就明白了 它只不过是让cin变为bad()而已 这点是有点质疑的 你在输入1 2 3 之后回车 再ctrl+z 然后再来一次 也就是两次ctrll+z 它才会结束的 我以前也不明白 为什么...

相似回答