Я пишу небольшую программу, чтобы просто получить строки из файла srt в определенном формате. Однако я получаю значение мусора в самом первом (и только том) чтении, которое я использую с помощью getline. Может кто-нибудь указать, почему я получаю это ненормальное поведение?Значение мусора при чтении из файла с использованием getline
//Small program to get the text from the srt files.
#include<iostream>
#include<string>
#include<fstream>
#include<algorithm>
#include<vector>
#include<sstream>
#include<conio.h>
using namespace std;
void srtToTranscript(ifstream* iFile, ofstream *oFile);
int main(){
std::string file_name;
std::string transcript;
cout << "Enter srt file name (without extension)";
cin >> file_name;
ifstream iFile;
ofstream oFile;
iFile.clear();
iFile.open("data\\" + file_name+".srt");
oFile.open("data\\" + file_name + "_result.txt");
srtToTranscript(&iFile,&oFile);
cout << "Conversion done. Check in the same folder";
cout << "Press a key to exit... ";
while (!_kbhit());
char dummy = _getch();
return 0;
}
void srtToTranscript(ifstream* iFile, ofstream* oFile)
{
int i = 1;
std:string line;
for (; getline(*iFile, line);)
{
cout << line << endl;
cout << to_string(i) << endl;
if (line.compare(to_string(i)) == 0){
getline(*iFile, line);
i++;
continue;
}
*oFile << line + ",\n";
}
oFile->close();
}
прилагается образец файла я читаю от:
00: 00: 00000 -> 00: 00: 12000
Переводчик: Чт -Huong Ha
00: 0 0: 12038 -> 00: 00: 15.012
За последние два десятилетия, Индия стала
В качестве примечания: Почему вы проходя аргументы 'srtToTranscript' как указатели? Что делать, если кто-то передает нулевой указатель? – emlai
Я просто что-то пробовал. Не рассматривайте это как код уровня продукции. Вы думаете, что это проблемы, вызывающие проблему? – TheBlueNotebook
Какой вывод записывается в 'cout', и какой результат вы ожидаете? –