Запись целого числа в ifstream C

#c #file-io

#c #файл-ввод-вывод

Вопрос:

Хорошо, итак, теперь я могу читать из файлов .txt как переменные, но как мне записать измененные целые числа обратно в мой текстовый файл? Пример:

 xps.open ("xp.txt"); //Text file is loaded and applied to ifstream 'xps'
int xp;
xps >> xp; //xps is applied to integer xp
xp  = 50; //xp has 50 added to it's value
  

и затем я хочу, чтобы значение xp было записано (перезаписывая предыдущее число) в xp.txt итак, как бы мне это сделать?

Ответ №1:

Неэффективно записывать и перезаписывать одно и то же значение. Просто подождите, пока не узнаете, какое значение вы хотите записать в файл, и запишите его.

Я полагаю, вы имеете в виду ofstream , а не ifstream поскольку в этом вопросе вы записываете в файл. Если вам абсолютно необходимо вернуться к файлу, тогда вам нужно вызвать seekp() . Для того, чтобы сделать это, вам нужно запомнить точку в файле, для начала записи в которую вы можете попасть, вызвав tellp() . Итак, если хотите мой совет, постарайтесь не переписывать значение.

Ответ №2:

Вам нужно открыть текстовый файл как для чтения, так и для записи; объявите xps как fstream, а затем вы можете просто выполнить

 xps << xp