【发布时间】:2013-11-19 19:11:34
【问题描述】:
我有这个代码可以从文件中读取,它可以工作。
#include "cppstd.hh"
#include <string>
int main(){
string line;
string *vdata= new string[10];
ifstream fvecin ("vector.txt");
if (fvecin.is_open()){
for (int i=0;i<10;i++){
getline(fvecin,line);
vdata[i]=line;
cout << "vdata["<<i<<"]="<< line << endl;
}
}
else{
cout << "ERROR: Cannot open the file!" << endl;
}
return 0;
}
但是,当我更改为 int 行时, int *vdata = new int[10],(or double) 它不起作用并出现此错误:
ifstream_test.cc: In function ‘int main()’:
ifstream_test.cc:10:26: error: no matching function for call to ‘getline(std::ifstream&, int&)’
ifstream_test.cc:10:26: note: candidates are:
/usr/include/stdio.h:675:20: note: __ssize_t getline(char**, size_t*, FILE*)
/usr/include/stdio.h:675:20: note: candidate expects 3 arguments, 2 provided
/usr/include/c++/4.6/bits/basic_string.h:2734:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&)
/usr/include/c++/4.6/bits/basic_string.tcc:1070:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&, _CharT)
您能否建议我从包含任何类型(双精度、浮点等)数据的文件中读取的方式。非常感谢。
【问题讨论】:
-
文件是以二进制格式还是文本格式存储这些值?