#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line,line2;
char dude[20];
cin.getline(dude,20);
fstream myfile ("example.txt",ios::in);
if(!myfile)
{
cout<<"Not Found! ";
system("pause");
}
while (!myfile.eof())
{
getline(myfile,line);
cout<<line;
}
myfile.close();
exit(0);
}
这样可行,但如果我这样做:
int main () {
string line,line2,dude;
它给了我一个错误。 [错误]没有匹配函数来调用&#39; std :: basic_istream :: getline(std :: string&amp;,int)&#39; 为什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
char buf[20]
不是字符串,而是字符数组。如果你使用&#39; \ 0&#39;来终止数组。字节,然后它可以说是一个c字符串。但不是std::string
。
函数cin.getline()
需要两个参数:指向字符数组的指针和缓冲区支持的字符数 - 然后用cin中的c字符串填充它。
没有cin.getline()
的变体支持std :: string。为此,您需要使用std::getline(iostream, string)
,例如
std::string line;
std::getline(std::cin, line);