C ++ Отображение текстового файла … («Echo» — текстовый файл)

Так что я действительно застрял, пытаясь вычислить эту ошибку в программе, которая не позволяет мне отображать текст моей программы …

#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <string>
#include <stdio.h>
using namespace std;

int main ()
{
ifstream infile;
ofstream offile;

char text[1024];
cout <<"Please enter the name of the file: \n";
cin >> text;

infile.open(text);

string scores; // this lines...

getline(infile, scores, '\0'); // is what I'm using...

cout << scores << endl; // to display the file...

string name1;
int name2;
string name3;
int name4;
infile >> name1;
infile >> name2;
infile >> name3;
infile >> name4;

cout << "these two individual with their age add are" << name2 + name4 <<endl;

// 23 + 27

//the result I get is a bunch of numbers...

return 0;

}

Есть ли способ чище или простой метод, который я могу использовать для отображения файла?

Все методы в Интернете трудно понять или отслеживать из-за
файл открыт в цикле ..

Я хочу программу, которая вы вводите имя файла и отображает файл
файл будет содержать следующее …

jack 23
smith 27

Также мне нужно получить данные из файла, теперь я использую приведенный выше код для получения этой информации из файла …

0

Решение

цикл, вероятно, лучшее, что вы можете сделать.
так что если вы знаете формат, вы можете просто сделать это так

#include <iostream>
#include <fstream>
using namespace std;
int printParsedFile(string fileName) {  // declaration of a function that reads from file passed as argument
fstream f;     // file stream
f.open(fileName.c_str(), ios_base::in);     // open file for reading
if (f.good()) {     // check if the file can be read
string tmp;     // temp variable we will use for getting chunked data
while(!f.eof()) {     // read data until the end of file is reached
f >> tmp;     // get first chunk of data
cout << tmp << "\t";     // and print it to the console
f >> tmp;     // get another chunk
cout << tmp << endl;     // and print it as well

} else {
return -1; // failed to open the file
}
return 0; // file opened and read successfully
}

Вы можете вызвать эту функцию, например, в функции main (), чтобы прочитать и отобразить файл, переданный в качестве аргумента.

int main(int argc, char** argv) {
string file;
cout << "enter name of the file to read from: "cin >> file;
printParsedFile(file);
return 0;
}
1

Другие решения

Я лично использую строковые потоки для чтения по одной строке за раз и ее анализа:

Например:

#include <fstream>
#include <stringstream>
#include <string>

std::string filename;

// Get name of your file
std::cout << "Enter the name of your file ";
std::cin >> filename;

// Open it
std::ifstream infs( filename );
std::string line;

getline( infs, line );

while( infs.good() ) {
std::istringstream lineStream( line );
std::string name;
int age;
lineStream >> name >> age;
std::cout << "Name = " << name << " age = " << age << std::endl;

getline( infs, line );
}
0

По вопросам рекламы [email protected]