我正在使用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”并停在太空......非常感谢帮助!
答案 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>
。