当看到' - '字符时,我无法结束getline,有人可以帮助我在c ++中使用getline()ifstream

时间:2018-02-09 04:43:26

标签: c++ ifstream

ifstream InPut;
ofstream OutPut;
InPut.open("/Users/apple/Documents/Lập trình C++/OOP/Tập tin/Test1/Test1/FileIn.txt",ios_base::in);

string str, mssv;

getline(InPut,str);
InPut.seekg(1,ios_base::cur);
getline(InPut,mssv);
InPut.close();
cout<<""<<str<<"/"<<mssv;
return 0;

FileIn.txt:

  

Nguyen Xuan Sang-1520159

我只想阅读“Nguyen Xuan Sang”,但我的代码读入了所有FileIn.txt。

1 个答案:

答案 0 :(得分:0)

计算机无法读懂你的想法。你从来没有告诉它读到“ - ”,所以如果你想要阅读直到空格,换行符或其他东西,计算机根本无法知道。

想象一下,你想读一些其他角色。你的代码会有什么不同?如果没有区别,那你就是做错了。

def hi(): print('hi') def loop(f, n): #f repeats n times if n<=0: return else: f() loop(f, n-1) loop(hi, 5) # Do not use hi() function inside loop() function 默认使用nextline作为分隔符,在您的情况下似乎会导致它读取整个文件。

要告诉getline()读取“ - ”,请将该字符指定为第三个参数,如下所示:

getline()