#include <fstream>
using namespace std;
int main()
{
ofstream out("result.txt");
for(int i = 1; i < 11; i++)
{
out << i << endl;
}
out.close();
return 0;
}
В результате получаем файл result.txt со следующим содержимым:
1
2
3
4
5
6
7
8
9
10
За числом 10 следует пустая строка. Имеется ли возможность задать в коде программы её (пустой строки) удаление?
Пустых строк не бывает. Если строка пустая — значит её нет. Если она есть — значит в ней должен быть как минимум завершающий символ перевода строки.
По идее у Вас должен был получиться файл такого содержания: "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n". Содержащий 10 строк. Что-то не так?
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
За числом 10 следует символ перевода строки (\n). Вы его хотите удалить? На последнем шаге просто уберите endl.
Хорошо бы при этом ещё отдавать себе отчёт, зачем это надо. Так делать не принято, и многие программы просто проигнорируют строку, не завершённую \n, а то и заглючат при чтении такого файла.
Пустых строк не бывает. Если строка пустая — значит её нет. Если она есть — значит в ней должен быть как минимум завершающий символ перевода строки.
По идее у Вас должен был получиться файл такого содержания: "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n". Содержащий 10 строк. Что-то не так?
Хотелось бы, чтобы в файле было только 10 строк с числами, а не так:
Ну откройте тот же файл в vim, там будет не так. Это просто особенность данного конкретного текстового редактора.
Или подсчитайте число строк с помощью wc -l и убедитесь, что их десять.
Или, наконец, посмотрите содержимое файла с помощью hexdump -C.
Ну откройте тот же файл в vim, там будет не так. Это просто особенность данного конкретного текстового редактора.
Или подсчитайте число строк с помощью wc -l и убедитесь, что их десять.
Или, наконец, посмотрите содержимое файла с помощью hexdump -C.
Действительно. Интересно, а почему текстовые редакторы показывают разное количество строк?
Давайте прикинем. Сперва у Вас есть файл "ровно" с n-ю строками. В конце последней строки не стоит символ сброса (\n) -- как гововрили выше, это может быть плохо по различным причинам. Во-первых, поймут не все парсеры. Во-вторых, при автоматическом дописывании новых строк первая из них склеится с последней из имевшихся.
Теперь добавим в конец символ \n. С точки зрения содержимого файла новой строки не будет, мы лишь завершим старую по общепринятому стандарту. С точки зрения GUI редактора мы, набрав последние символы в n-й строке, нажали клавишу Enter, то есть перешли на n+1-ю. Но, пока там нет ни одного символа -- это не совсем строка, а некий "placeholder", в который можно только поставить курсор. Показывать ли его как строку с новым номером -- вопрос субъективный. Для большинства пользователей привычнее, если да.
За числом 10 следует символ перевода строки (\n). Вы его хотите удалить? На последнем шаге просто уберите endl.
Хорошо бы при этом ещё отдавать себе отчёт, зачем это надо.
Я исхожу из того, что ТС понимает что делает. Возможно он добавляет к этой строке еще что-то, вызывая либо следующую функцию, либо другую программу. Пример, приведенный тут, наверняка изменен.
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)