C++按行读取txt文件内容(具体请看代码)

代码:#include<iostream>#include<fstream>usingnamespacestd;chars[80];voidmain(){ifstream... 代码:
#include <iostream>#include <fstream>using namespace std;char s[80];void main(){ ifstream infile; infile.open("d:\abc\0.txt",ios::in); infile.getline(s,80); cout<<s<<endl; infile.close();}
输出是空行,我想将其中的每行读取出来存入一个变量,再对这个变量进行操作,不知怎么办
下面是0.txt中的内容:
展开
 我来答
cjj796
推荐于2017-09-29 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3467万
展开全部

这是读取并显示的运行结果:

帮你改了一下程序,你试试吧,有问题再问:

#include <iostream>
#include <fstream>

using namespace std;
char s[80];

int main()
{
string a[100];              //采用 string 类型,存100行的文本,不要用数组 
int i=0; 
ifstream infile;

infile.open("d:\abc\0.txt",ios::in);

while(!infile.eof())            // 若未到文件结束一直循环 
{  
getline(infile, a[i], '\n');//读取一行,以换行符结束,存入 a[] 中
i++;             //下一行
}
for(int ii=0;ii<i;ii++)        // 显示读取的txt内容 
{  
cout<< a[ii] << endl;
}
 infile.close();
}
追问

我把while(!infile.eof())改为while(!infile.eof()&&i<10)

结果输出还是

追答
 infile.open("d:\abc\0.txt",ios::in);   //这里的路径指向是错误的,我刚才没注意,改成
 infile.open("d:\\abc\\0.txt",ios::in); //这里的路径里面是双斜线 
 while(!infile.eof())                   //这一句保持,不要改

满意请采纳,以后又问题,可以直接对我提问

White_MouseYBZ
2013-09-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6645万
展开全部
只读一行的话,代码本身无错。你的问题是,文件0.txt中可能第一行就是个回车符,所以读进来了空行。文件常常不只有一行,所以要反复读取,反复处理。这样试试:
void main(void){
char s[80];
ifstream infile;
infile.open("0.txt",ios::in);
while(!infile.eof()){//文件没有结束则继续读取.
infile.getline(s,80);
cout<<s<<endl;
}
infile.close();
}
追问

首先表示感谢,然后那个txt的内容一开始确实不是回车符,看了你的代码,我试着把那个txt从原来的位置即d:\abc复制到了这个c++程序所在的文件夹下,所以infile.open那一行第一个参数就不用写路径了,结果就出来了(如下),但是一旦我又一次加上地址,输出就和上面那个一样了(见上一个回答者中的追问),请问是怎么回事?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式