У меня есть это задание для поиска Certian информации в HTML-файл и положить результат в текстовый файл. Я хотел сделать это с помощью getline, но почему-то это не работает. У меня нет проблем с использованием getline для текстового файла, поэтому я предположил, что вы не можете использовать getline для html файла. Это предположение верно? Как я могу преобразовать такой файл в текстовый файл? Или, может быть, есть лучшее / более простое решение? Спасибо.
Вот код: (имена переменных не на английском языке, я надеюсь, что это не проблема)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
string nazwa_wejsciowego;
string roboczy;
ifstream html;
ifstream txt("wynik.txt");
int main()
{
cout<<"Podaj nazwę pliku html, z ktorego odczytane maja zostac dane."<<endl;
cin>>nazwa_wejsciowego;
ifstream html(nazwa_wejsciowego, ios::app); //opening the file
if(!html){
cout<<"Otwarcie pliku "<<nazwa_wejsciowego<<" nie powiodlo sie."<<endl;
system("pause");}
//checking if it opende properly
getline(html, roboczy);
cout<<roboczy<<endl;
return 0;}
Нет, предположение неверно. HTML является текст; тот факт, что он находится в структурированном формате, который может быть проанализирован компьютером для визуализации веб-страницы, не имеет значения для чтения отдельных символов в файле.
getline
может быть подходящим подходом, хотя, как отмечает Стив в комментариях, некоторые HTML-страницы «минимизированы» (в них убраны лишние пробелы, чтобы сэкономить место и сделать код более трудным для копирования), и в таком случае вы можете получить только одна действительно большая линия. Поэтому может быть удобнее читать кусками байтов.
Других решений пока нет …