Как читать числовые, минутные и секундные значения из файла, записывая значения *в точности как задано* в другой файл

Во-первых, это возможно?

Чтобы экстраполировать вопрос: я хотел бы прочитать несколько целых чисел из файла, что для меня относительно просто. Однако, когда я читаю эти значения в формате: например, «123 17 24 55 04 30 09», мой письменный вывод показывает «123 17 24 55 4 30 9», где «0» отсутствует перед 4, и 9. Это беспокоит меня с точки зрения форматирования. Как сохранить 0, который находится перед 4 и 9, в моем выводе?

Мой текущий код прикреплен

int main() {

ifstream inf;
ofstream of;
float timeSmin, timeSsec, timeBmin, timeBsec=01.00, timeRmin=01, timeRsec=01.00;
int ID, totaltime;


inf.open ("triath.txt");
of.open ("output.txt");

if (!inf.is_open()){
  cout << "Triath.txt cannot be opened, error..." << endl;
}

inf >> ID >> timeSmin >> timeSsec >> timeBmin >> timeBsec >> timeRmin >> timeRsec; //writing values to input object.

of << ID << " " << timeSmin << " " << timeSsec << " " << timeBmin << " " << timeBsec << " " << timeRmin << " " << timeRsec;


inf.close();
of.close();
return 0;
} ```

person John-Paul Anderson    schedule 19.11.2019    source источник


Ответы (1)


Я бы прочитал файл как строку и проанализировал строку. Это дает вам исходную строку для вывода.

Вам понадобится способ разбить входную строку на токены. Если вы не можете понять это, вы можете сделать google для «С++ разделить строку на пробелы» и получить кучу хороших результатов.

Затем вам нужно будет преобразовать подстроки в целые числа. Опять же, Google для «преобразования строки С++ в целое число» даст некоторые подсказки.

Затем вы просто выводите исходную строку как есть, и она идентична тому, что вы прочитали изначально.

person Joseph Larson    schedule 19.11.2019
comment
Спасибо, Джозеф, там, где я учусь, я не использую такие термины, как синтаксический анализ и токен, поэтому я не знаю, что вы имели в виду, спасибо за экспертный совет, и в будущем я бы рекомендовал больше расширять терминологию, такую ​​​​как как это, чтобы мы могли учиться более эффективно. - person John-Paul Anderson; 07.03.2020
comment
@ John-PaulAnderson Я не могу предвидеть, когда кто-то может быть не носителем английского языка. Я не могу помочь с языковым переводом. Parse и token — распространенные слова в английском языке. - person Joseph Larson; 09.03.2020