学校要求编写词法分析器,然后代码如下,不知道为什么只能读第一行,后面的读不了。希望高手帮助一下
int main()
{
ifstream fin;//输入文件
fin.open("in.txt");
fout.open("out.txt");
fout<<"<?xml version=\"1.0\"?>"<<endl;
fout<<"<root>"<<endl;
string si;
if(fin)
{
int i=0,j=0,ch=0;
while (!fin.eof())
{
getline(fin,si);
j++;
int l=si.length();
while (i<l)
{
ch=1;
judge(si,i,j,ch);
i=i+ch;
}
}
fout<<"</root>"<<endl;
fin.close();
fout.close();
return 0;
}
}
//其中judge(si,i,j,ch)是自己定义的一个读的函数
//å¨å·¥ç¨ä¸é¢å»ºç«ä¸ä¸ªæ件 xiaojiba.txt
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
cout<<"input the filename:"<<endl;
string filename;
cin>>filename;
ifstream infile(filename.c_str());
string temp;
while(getline(infile,temp))
{
cout<<temp<<endl;
}
cout << "Hello world!" << endl;
return 0;
}
不好意思,请问这个函数怎么放在我们main函数里啊
追答这个函数参 getline(目标变量,读取数量);
这么用 我定义了一个 字符串 buf来保存读取后的 数据。
这样 ,你每执行一次getline 就会把相应的行读到buf中,
字符串的大小(也就是50) 就根据你的需要定了。
嗯不好意思,我着您的改了,可是连第一行也输出不了了。。。方便留一下邮箱么,我把所有的程序都写上
追答三四五一九零零四二
方便的话,把你程序和 需要读的文件也发吧
您好,您看了一下out文件的输出了吗,我这里输出是
恩。 我也看到了。
但是 我刚刚 看了下 读取文件的部分没有问题。
至于你自己的那个函数我就没有细看,所以没能判断结果是否是你要的。。