C++中一个比较简单的问题(ignore)

2024-12-17 14:33:33
推荐回答(3个)
回答1:

#include
#include
#include
#include
using namespace std;
int main()
{
string filename,a,b,c;
ifstream infile;
cout<<"please input the filename"<cin>>filename;
infile.open(filename.c_str());
if(!infile) {cout << "error" << endl; return 0;}
infile.ignore(200,','); //ignore(200,',')表示忽略读取文件中的200个字符,直到遇到','逗号
infile>>a;
infile.ignore(200,',');
infile>>b;
infile.ignore(200,',');
infile>>c;

cout<infile.close();
return 0;
}
那么上述程序就要求你把txt文件放在程序当前目录下,不是任意文件夹的。然后比如文件中内容为1,2,3,4程序就会读取2,3,4到a,输出2,3,4。第一个1被忽略了。因为1前面没有逗号或者两百个字符。 文件没有后继内容,bc不会读取到值。

回答2:

程序没有问题。
你新建个文件abc.txt,然后把下面这几句话拷贝到里面:
the, quick, brown, fox, jumps, over, the, lazy, dog

运行程序,输入"abc.txt"。注意,abc.txt这个文件,一定要跟你这个.cpp源文件在同一个目录里。
infile.ignore(200,','); //跳过200个字符,直到遇到','为止,所以跳过了"the,"
infile>>a; //读入一个字符串,即"quick,",因为默认情况下空格是读取分隔符
infile.ignore(200,','); //跳过200个字符,直到遇到','为止,所以跳过了"brown,"
infile>>b; //读入一个字符串,即"fox,",注意空格是分隔符
infile.ignore(200,','); //跳过"jumps,"
infile>>c; //读取"over,"
最后的输出结果就是
quick,
fox,
over,

回答3:

infile>>a; // a没有初始化 a字符串为空 这里不对吧
//你的意思是将a的内容写到文件???? 可a没有初始化
infile.ignore(200,',');
infile>>b; //同上
infile.ignore(200,',');
infile>>c; //同上

ifstream infile; //文件是不是用于输出 应该定义为 ofstream infile;

cout<