凌乱的输出--c ++ ifstream

时间:2014-01-20 01:43:27

标签: c++

有没有让它读取空格甚至输出它的方式完全相同?

ifstream myReadFile;
    myReadFile.open("Data.txt");
    system("cls");
    std::cout << "Wip" << std::endl;

    ifstream myReadFile;
    myReadFile.open("Data.txt");
    std::string output;
    std::getline(myReadFile, output);
    std::cout << output << "\n";
    myReadFile.close();
    system("pause");
    return 0;

样本数据;

  

姓名:jobes lobes
  年龄:89
  地址:9 neuern_st mucgregor brosbane australia

它只返回第一行 是否有任何方法可以输出所有的线?

2 个答案:

答案 0 :(得分:0)

operator >>' ''\n'等分隔输入数据,例如scanf()。如果您想要阅读整行,例如gets(),则应使用basic_istream<>::getlinestd::getline

std::string output;
std::getline(myReadFile, output);
std::cout << output << "\n";

char output[100];
myReadFile.getline(output, sizeof(output) / sizeof(output[0]));
std::cout << output << "\n";

答案 1 :(得分:0)

使用std :: ifstream :: getline代替。

   myReadFile.getline(output, sizeof(output), '\n');
   std::cout << output << std::endl;

getline成员函数用'\ n'分隔输入,这样你就可以在输出流的末尾安全地附加一个'endl'。

这里是getline的文档:getline doc