Всем привет! Зашёл в такой тупик: какую бы я не вводил строку, в файл пишется первая строка пустой, а последняя введённая строка не записывается. Сделал костыль в for, увеличив количество повторов на 1, чтобы могла записываться последняя строка, но из-за этого костыля приходится делать другие костыли, чтобы программа работала нормально. Очень нужно понять, почему происходит такое смещение в строках при записи в файл, чтобы можно было убрать эту "опухоль" в коде.
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
void Write(int strings)
{
ofstream file("Строки.txt");
char temp[100];
if (!file.is_open())
{
cout << "По какой-то причине, файл не может быть открыт." << endl;
}
else
{
cout << "Вводите строки:" << endl;
for (int i = 0; i <= strings; i++)
{
cin.getline(temp, 100);
file << temp << "\r\n";
}
}
file.close();
}
void Read(int strings)
{
ifstream file("Строки.txt");
char temp[100];
char check[] = { ',', '.', '!', '?', '-' };
int count = 0;
if (!file.is_open())
{
cout << "По какой-то причине, файл не может быть открыт." << endl;
}
else
{
cout << "\nСчитываю строки...";
for (int i = 0; i <= strings; i++)
{
file.getline(temp, 100);
cout << temp << endl;
cout << temp[strlen(temp) - 2] << endl;
}
}
file.close();
}
int main()
{
setlocale(LC_ALL, "rus");
int strings = 0;
cout << "Количество строк: ";
cin >> strings;
Write(strings);
Read(strings);
system("pause");
return 0;
}