У вас есть несколько вариантов:
Вы можете прочитать 3 целых числа, используя operator>>
, затем ignore()
ifstream
, пока не пропустите новую строку, затем вы можете использовать std::getline()
для прочитайте вторую строку:
#include <iostream>
#include <string>
#include <fstream>
#include <limits>
using namespace std;
int main(int argc, char **argv)
{
ifstream inFile;
ofstream outFile;
string name;
int x,y,z;
outFile.open("C:\\Users\\luked\\Desktop\\Test.txt");
outFile << 5 << " " << 10 << " " << 15 << "\n" << "My name is Luke";
outFile.close();
inFile.open("C:\\Users\\luked\\Desktop\\Test.txt");
inFile >> x >> y >> z;
infile.ignore(numeric_limits<streamsize>::max(), '\n');
getline(inFile, name);
cout << x << " " << y << " " << z << " " << endl << name;
return 0;
}
В противном случае, несмотря на ваше утверждение, что «я не могу использовать getline () для [1-й строки]», вы МОЖЕТЕ фактически использовать std::getline()
для чтения 1-й строки. Просто используйте std::istringstream
впоследствии, чтобы прочитать целые числа из этой строки. Затем вы можете использовать std::getline()
для чтения 2-й строки:
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
int main(int argc, char **argv)
{
ifstream inFile;
ofstream outFile;
string line, name;
int x,y,z;
outFile.open("C:\\Users\\luked\\Desktop\\Test.txt");
outFile << 5 << " " << 10 << " " << 15 << "\n" << "My name is Luke";
outFile.close();
inFile.open("C:\\Users\\luked\\Desktop\\Test.txt");
getline(inFile, line);
istringstream(line) >> x >> y >> z;
getline(inFile, name);
cout << x << " " << y << " " << z << " " << endl << name;
return 0;
}