在c ++中从文件中读取整行

时间:2011-12-02 04:35:40

标签: c++ string file

我正在使用c ++编写一个程序,我需要从文件中读取整个文本字符串。该文件包含其中一行的地址,如“123 Easy Ave”,这必须被拉成一个字符串或字符。这是我的代码:

数据文件:

Matt Harrold
307C Meshel Hall
1000 .01 4

数据由姓名和姓氏组成,下一行是填充地址的地址,然后是三个数字:original,InterestRate,Years。

代码:

float InterestRate = 0;
int Years = 0;
char Junk [20];
int FutureValue;
float OnePlusInterestRate;
int YearNumber;
int count = 0;
char CustomerName;
string Address;
int * YearsPointer;


       CustomerFile >> CustomerName
                >> Address
                >> Principle
                >> InterestRate
                >> Years;

现在它只能拉入“103C”并停在太空......非常感谢帮助!

2 个答案:

答案 0 :(得分:3)

修改:针对我的问题的反馈,我对其进行了编辑,以使用更合适的std::getline代替std::istream::getline。这两个都足够了,但std::getline更适合std::string,你不必担心指定字符串大小。

使用std::getline()中的<string>

这里有一个很好的参考和示例:http://www.cplusplus.com/reference/string/getline/

您还需要小心结合提取(>>)运算符和getline。这个问题的最佳答案(cin>> not work with getline())简要解释了为什么它们不应该一起使用。简而言之,对cin >>(或您正在使用的任何输入流)的调用会在流中留下一个换行符,然后由getline选取一个换行符,为您提供一个空字符串。如果你真的想一起使用它们,你必须在两次通话之间拨打std::istream::ignore

答案 1 :(得分:3)

使用std::getline标题中的<string>